(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NextResetTime Documented Incorrectly
DOCUMENT ID#: FYI.A.3384
DATE: 06OCT92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The nextResetTime field in the LOGIN_CONTROL property in the bindery is documented incorrectly. It states that the value is stored in seconds since January 1, 1985. It is actually the number of minutes since January 1, 1985.
SOLUTION
Calculate in minutes instead of seconds when calculating the nextReset Time for an account lockout or reset.
FYI: Handle Usage with Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Handle Usage with Btrieve
DOCUMENT ID#: FYI.A.2042
DATE: 05OCT92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Error - No available file handles
ISSUE/PROBLEM
Btrieve for DOS version 5.10a allocates its own PSP (Program Segment Prefix) with a file handle table of size (/f parameter * 2) entries (with patch #99 applied). Btrieve for DOS does not use the calling application's file handles. This means that when a DOS application has opened 20 Btrieve files, the application still has 15 handles (20 DOS default handles - 5 standard) available for use to issue DOS open calls to non-Btrieve files.
This is not the case, however, with Btrieve for Windows. Btrieve for Windows uses the calling application's file handle table. When the application's available handles are exhausted, WBTRCALL will "rotate" the handles as in prior versions of Btrieve for DOS (prior to 5.10).
This means that once 15 Btrieve files are open, there are no handles available to the calling application for DOS open calls to non-Btrieve files, since DOS will not rotate handles. At this point, if another Btrieve open is issued, WBTRCALL will close one of its open files and use the handle to open the new file. This is done invisibly to the application and WBTRCALL can handle up to its current /f: parameter of rotating files at one time.
SOLUTION
WBTRCALL will use whatever application handles are available, so if DOS open calls to non-Btrieve files are desired along with more than 15 Btrieve opens, one solution is to open the DOS files before the Btrieve files.
Another solution is to increase the number of handles available to the application at compile time. The process of increasing the number of open files to more than the default 20 varies with the compiler used. See other FYIs on how to increase the handles with Microsoft and
Borland C.
FYI: Calling WXQLCALL.DLL Functions from Visual Basic
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling WXQLCALL.DLL Functions from Visual Basic
DOCUMENT ID#: FYI.A.2040
DATE: 05OCT92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The following Declare statements can be used in a Visual Basic application's Global section to define the functions contained in the NetWare SQL requester for Windows, WXQLCALL.DLL.
Declare Function xLogout Lib "wxqlcall.dll" () As Integer
Declare Function xPassword Lib "wxqlcall.dll" (ByVal sUser$, ByVal
sPassword$) As Integer
Declare Function xSecurity Lib "wxqlcall.dll" (ByVal sMstrPswd$, ByVal
iOption%) As Integer
Declare Function xStop Lib "wxqlcall.dll" () As Integer
Declare Function xUser Lib "wxqlcall.dll" (ByVal sMstrPswd$, ByVal
iOption%, ByVal sUser$, ByVal sPassword$, ByVal iFlags%, iCount As
Integer, iBufLen As Integer, bDataBuf As Any) As Integer
Declare Function xVersion Lib "wxqlcall.dll" (ByVal sVersion$) As Integer
FYI: Increasing File Handles with Borland C
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Increasing File Handles with Borland C
DOCUMENT ID#: FYI.A.2039
DATE: 05OCT92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Error - No available file handles
ISSUE/PROBLEM
When using Btrieve for Windows, it is sometimes necessary to increase the number of file handles available to an application when opening non-Btrieve files using DOS open calls.
Below are instructions on how to do this with Borland C/C++ v3.1. See associated FYIs, Handle Usage with Btrieve for Windows and Increasing Available File Handles with Microsoft C for more information.
SOLUTION
Increasing the number of files available to a program in Borland C involves changing 3 files from the Run-time Library: _NFILE.H, FILES.C, and FILES2.C. The only change actually needed is to _NFILE.H, where the macro _NFILE_ must be redefined. The files FILES.C and FILES2.C just need to be recompiled to reflect the changes to this macro. Assigning a value to this macro will set the maximum number of FILES available to a program including the 5 standard files (stdin, stdout, stderr, stdaux, stdprn).
The changes can be made in two different ways. One, simply recompile FILES.C and FILES2.C in the appropriate memory model and link them in with the program. In the IDE, this means adding the two .C files to the project. On the command line, this means adding them to the BCC line. For example: BCC myprog.c FILES.C FILES2.C
The effect of this will be that the symbols will be redefined in the two files which have been previously defined in the standard libraries, and precedence will go to the new definition. The subsequent warnings from the linker (if the Warn Duplicate Symbols option, /d, is set) can be ignored.
The other method is to replace the FILES.C and FILES2.C in the standard library with the modified and recompiled versions. The advantage of doing this is every time access to more than 20 files is needed by an application, the files will not always have to be added to the project manually. To replace the files in the standard library, first recompile them using BCC like this:
BCC -c -mX FILES.C FILES2.C
where the X in -mX refers to the memory model of the library being modified (this step will have to be repeated for each memory model to be modified). This will result in FILES.OBJ and FILES2.OBJ which can then be added to the appropriate library in the LIB directory using TLIB. For the large model it would look like this:
TLIB ml.lib +-FILES.OBJ +-FILES2.OBJ
In the Windows environment, a call must also be added to the Windows API function SetHandleCount, to inform Windows that the program needs more file handles.
FYI: Usage of SetVolumeRestrictions() by a Workgroup Manager
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Usage of SetVolumeRestrictions() by a Workgroup Manager
DOCUMENT ID#: FYI.A.4801
DATE: 02OCT92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: SetVolumeRestrictions returns a 140 error code (No Modify Rights) when called by a workgroup manager.
ISSUE/PROBLEM
SetVolumeRestrictions does not allow a workgroup manager to set the volume restrictions for members of his/her group.
SOLUTION
Only a user with supervisor rights can use SetVolumeRestrictions() to set the volume restrictions for a user.
FYI: NetWare SQL NLM Fails to Load
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare SQL NLM Fails to Load
DOCUMENT ID#: FYI.A.1049
DATE: 02OCT92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NetWare SQL fails to load.
ISSUE/PROBLEM
If using the NSSTART.NCF file to load the NetWare SQL v3.0 NLMs the console may display messages like:
Loader cannot find public symbol: NSDBNamesList
Loader cannot find public symbol: NSAdvertiseDBNames
Loader cannot find public symbol: NSSRBProcess
Loader cannot find public symbol: NSSBTBGetStats
Loader cannot find public symbol: NSResetClient
These messages may be followed by additional messages about resources not being released.
If using the BSTART.NCF file to load the BTRIEVE NLMs and then followed by the NSSTART.NCF file you will get these same messages again. If you then attempt load the NWSQL.NLM manually (by typing LOAD NWSQL at the server console prompt) the message that appears will pinpoint the real problem. The message displayed on the console will be:
NetWare SQL: Unable to open database names configuration file.
SOLUTION
For some reason, NetWare SQL is unable to open the database names configuration file, DBNAMES.CFG, which is located in the SYS:SYSTEM directory. This file has probably been damaged in some way. Rename or delete this file, and then try to load the NLMs again with the NSSTART command. When NetWare SQL is loading, if it finds that the DBNAMES.CFG file does not exist it will automatically create a new one.
*** SPECIAL NOTE: Keep in mind, that if there were named databases defined in the damaged or corrupted DBNAMES.CFG file, they must be redefined in the new file using the NetWare SQL Setup Utility (NDBSETUP.NLM).
FYI: Get Position Fails to Lock File after Begin Transaction
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Get Position Fails to Lock File after Begin Transaction
DOCUMENT ID#: FYI.A.1048
DATE: 02OCT92
PRODUCT: Btrieve
PRODUCT VERSION: ANY
SUPERSEDES: NA
SYMPTOM: A Get Position performed on a file after a Begin Transaction does not lock the file.
ISSUE/PROBLEM
The scenario described below will not lock the file for Station 1, and Station 2's read and update operations will be successful.
Station 1 Station 2
--------- ---------
Open file A
Open file A
Get First Rec
Begin Trans
Get Position
Begin Trans
Get First Rec
Update
Normally, the first successful operation performed on a file within a transaction establishes an exclusive file-level lock on that file, which prohibits all other users from writing to that file. However, Get Position information is obtained by just looking at the Position Block. This is true for both client Btrieve and NetWare Btrieve. The file is never touched and therefore the exclusive file lock is not set. So, Station 2s update will succeed. According to development, the Position Block is always updated with the record usage count and address information on standard Btrieve calls.
SOLUTION
The workstation application that is trying to lock a file within an Explicit Btrieve Transaction must make a call that actually touches the file. Any read operation or an insert operation will do this.
FYI: Memory Requirements for NetWare v3.x Servers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Memory Requirements for NetWare v3.x Servers
DOCUMENT ID#: FYI.A.1047
DATE: 02OCT92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Server console errors: unable to allocate short term memory
ISSUE/PROBLEM
When running the Btrieve NLM on a NetWare 3.x server, error messages such as "Unable to allocate short term memory" may appear at the server console. This indicates that the server may be out of available CACHE (i.e.. RAM) on that server. Btrieve may subsequently return errors like status 16 "Expansion Error", or 91 "Server Error".
SOLUTION
Add more memory to the server.
FYI: Start Transaction / Cursors
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Start Transaction / Cursors
DOCUMENT ID#: FYI.A.2041
DATE: 30SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Status 202 (invalid cursor ID) within a manager level START TRANSACTION
ISSUE/PROBLEM
When XQLCompile is used to start a transaction, any view that is currently associated with the cursor ID that is passed to XQLCompile will be released. As a result, if there is an attempt to access the view inside the transaction, a status 202 (invalid cursor ID) will be returned. This is not the case, however, when the primitive level function, xTrans - option 0, is used to start the transaction. Since xTrans does not use a cursor ID, any views defined will not be effected.
SOLUTION
Allocate a separate cursor ID with XQLCursor to be used for transaction control SQL statements, or use the xTrans primitive.
FYI: NetWare SQL and Status 43
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare SQL and Status 43
DOCUMENT ID#: FYI.A.1768
DATE: 30SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Status 43 - Invalid Record Address
ISSUE/PROBLEM
There are several situations under which NetWare SQL might return a status 43 (Invalid Record Address) to an application. One such circumstance occurs when user one issues an XQLFetch call to retrieve multiple records, and then user two deletes the last record that was just fetched by user one. Then, if user one attempts to fetch the next set of records, NetWare SQL returns a status 43. This is due to the fact that when NetWare SQL tries to get the next set of records for user one, it first issues a Btrieve Get Direct call based on the last record that was previously returned to user one. Since this record has been deleted, the Get Direct call fails and a status 43 is returned to NetWare SQL, which then returns the same status back to the application.
There are other places where NetWare SQL uses Btrieve Get Direct operations to re-establish positioning between NetWare SQL calls. In any of these cases, if the record has been deleted by another user, a status 43 will be returned.
SOLUTION
Once an application receives a 43, it must re-establish positioning for the cursor being used for the XQLFetch calls using a Fetch First or Fetch Last option.
FYI: Illustrated Guide to Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Illustrated Guide to Btrieve
DOCUMENT ID#: FYI.A.1122
DATE: 30SEP92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.x+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Are there any third-party manuals which describe the functionality of Btrieve?
SOLUTION
MIDI America has published a book called "Illustrated Guide to Btrieve".
To place orders, call (404)455-0593 or write to the address listed below. MIDI America's hours are 10am-6pm Monday through Friday, with an answering machine taking orders after hours.
MIDI America
2103 N. Decatur Road
Suite 160
Decatur, GA. 30033
FYI: NetWare SQL and Protection Violation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare SQL and Protection Violation
DOCUMENT ID#: FYI.A.1877
DATE: 25SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Protection Violation
ISSUE/PROBLEM
With the 1992 fourth quarter release of NetWare SQL patches, a new NetWare SQL OS/2 requester was released. It is version 3.00a. This XQLCALLS.DLL is dated 8-17-92 and is 52645 bytes in size. If Xtrieve PLUS for OS/2 version 4.11x is used with this requester a Protection Violation can occur given the following circumstances:
1) If the owner name set up for a file is an incorrect owner name.
2) If the view path specified is incorrect.
The protection violation is most likely to occur when recalling a VIEW.
SOLUTION
If for some reason it is necessary to do this, the XQLCALLS.DLL dated 4-02-92 with a byte size of 52677 will not cause the protection violation. This is the original NetWare SQL v3.0 OS/2 requester, and its version is 3.00.
FYI: Update to Closing Files in a Transaction
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Update to Closing Files in a Transaction
DOCUMENT ID#: FYI.A.1876
DATE: 25SEP92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.1x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is an FYI dated 31AUG92 titled: Closing Files in a Transaction. It refers to the behavior of the Btrieve NLM version 6.0 in regards to closing a file during a transaction. It was pointed out after the FYI was written that any file that is not written to during a transaction can be closed by the 6.0 Btrieve NLM during the transaction. This is not so with previous versions of Btrieve in any environment (client or NetWare). If the file is used in the transaction, it cannot be closed during the transaction.
SOLUTION
NA
FYI: Determining Versions of Windows and OS/2 DLLs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Determining Versions of Windows and OS/2 DLLs
DOCUMENT ID#: FYI.A.1121
DATE: 24SEP92
PRODUCT: Btrieve for Windows, Btrieve for OS/2
PRODUCT VERSION: ANY
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can you determine which version of a DLL you are using, whether it be in the Windows or OS/2 environment?
SOLUTION
Use DOS debug, or Microsoft's EXEHDR.EXE program to find out.
To do this with debug, at the DOS prompt, type:
c:>debug WBTRCALL.DLL ;(or BTRCALLS.DLL)
-d ;type this dump command several times,
until you see information such as
Btrieve Windows requester v6.00a
-q ;to exit
To find out version information using EXEHDR.EXE, you must have a Microsoft C compiler. Just type:
c:>exehdr WBTRCALL.DLL ;(or BTRCALLS.DLL)
It will display information as follows:
Microsoft (R) EXE File Header Utility Version 3.00
Copyright (C) Microsoft Corp 1985-1992. All rights reserved.
Library: WBTRCALL
Description: Btrieve Requester DPMI DynaLink v6.00b for
MS-Windows
Data: SHARED
Initialization: Global
|
|
|
FYI: NWWaitOnSemaphore Hangs OS/2 NetWare Session
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The NWWaitOnSemaphore() call uses local semaphore locks in the NetWare OS/2 2.0 requester. Unfortunately, there is a problem with the lock code that can cause NetWare sessions to hang.
SOLUTION
This will be fixed in the next update to the OS/2 2.0 Requester.
FYI: NDBCOMM.DLL Configuration Parameter
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NDBCOMM.DLL Configuration Parameter
DOCUMENT ID#: FYI.A.1767
DATE: 23SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NetWare SQL session cleared for OS/2 client
ISSUE/PROBLEM
If the time necessary for NetWare SQL to process an SQL statement sent by an OS/2 client is more than 60 seconds, the NetWare SQL session will be cleared.
SOLUTION
There is a configuration parameter that can be set to tell the NDBCOMM.DLL how long to wait before resetting the session. NDBCOMM is part of the NetWare SQL OS/2 requester, and is used in conjunction with the XQLCALLS.DLL by a NetWare SQL application running on an OS/2 client. The parameter is NDBTIMEOUT. If this parameter is not set, NDBCOMM.DLL will wait 60000 milliseconds (60 seconds) for a response. This parameter can be set to increase the time NDBCOMM will wait, or it can be set to -1, which tells NDBCOMM to wait indefinitely.
The syntax is: SET NDBTIMEOUT=<value>
This statement can be executed from the workstation's CONFIG.SYS file, or from the command line before the first NetWare SQL application is started (i.e. before NDBCOMM.DLL loads).
Some example settings are:
SET NDBTIMEOUT=-1 --> Tells NDBCOMM to wait indefinitely
SET NDBTIMEOUT=900000 --> Tells NDBCOMM to wait 15 minutes for a reply
Certain NetWare SQL queries may cause NetWare SQL to build one or more temporary sort files. When tables with many records are involved, this process may take a while, in which case you may need to set this parameter to a very high value, or use the -1 option.
FYI: RecoverSalvageableFiles() Initial Search
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: RecoverSalvageableFiles() Initial Search
DOCUMENT ID#: FYI.A.4803
DATE: 21SEP92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Unsuccessful recover of salvageable files when entryID has an initial value of -1.
ISSUE/PROBLEM
The parameter entryID does not expect a -1 as the value for its initial search. Instead it requires the value of a file ID.
SOLUTION
Get the file ID from the parameter entryID in ScanSalvagableFiles and use its value in the entryID parameter for RecoverSalvageableFiles.
FYI: ScanSalvagableFiles() Initial Search
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanSalvagableFiles() Initial Search
DOCUMENT ID#: FYI.A.4802
DATE: 21SEP92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: "Value out of Range" compiler warning.
ISSUE/PROBLEM
The parameter entryID in ScanSalvagableFiles requires an initial value of -1 to start the scan for salvageable files. However, entryID is declared as an unsigned long (LONG) and cannot be assigned a value of -1.
SOLUTION
Declare the parameter as a signed long. This will cause another compiler warning (suspicious pointer conversion) but will solve the problem.
FYI: NetWare C Interface for DOS ScanProperty Function
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare C Interface for DOS ScanProperty Function
DOCUMENT ID#: FYI.A.4501
DATE: 21SEP92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare C Interface for DOS ScanProperties() function contains a moreProperties flag parameter to indicate the presence of additional properties for a given object. When the ScanProperties function is called, the moreProperties flag may incorrectly indicate that more properties exist when there are no more properties for that object.
SOLUTION
The solution to this problem is to check both the moreProperties flag and the return code from the ScanProperties() function.
FYI: NULL Indexes, Xtrieve PLUS, and NetWare SQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NULL Indexes, Xtrieve PLUS, and NetWare SQL
DOCUMENT ID#: FYI.A.2428
DATE: 12SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Currently, Xtrieve for NetWare SQL (v4.11) does not support the NULL index attribute. In other words, when defining an index, Xtrieve allows the user to specify certain attributes, such as allow duplicates, modifiable, ascending, etc.., but there is not an option for specifying if the index has a NULL value.
SOLUTION
Using NetWare SQL v3.0 there are two ways of creating an index with the NULL attribute: the primitive xDDCreate function or the manager CREATE TABLE statement. However, neither of these operations allow the user to specify the character that should be used as the NULL value; by default, the null value is always binary zero.
FYI: SET BLANK and xChar() Effect
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SET BLANK and xChar() Effect
DOCUMENT ID#: FYI.A.1766
DATE: 09SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Status 204; Status 207
ISSUE/PROBLEM
When a blank replacement character is defined for a NetWare SQL session, table names and field names that were previously defined with that character can not be accessed during that session. For example, if the table TEST_TABLE is created, and then the SQL statement SET BLANK = "_" is executed, an attempt to access TEST_TABLE will return a status 204 - Table Is Not defined in the Dictionary. Similarly, attempting to access a field that was defined with an underscore in its name will return a status 207 - Field Does Not Exist in the Dictionary.
In the same manner, if an application calls the xChar Primitive function, table names and field names that were previously defined with the specified blank replacement character can not be accessed during that session.
SOLUTION
Use a blank replacement character that is not being used in any table names or field names in the dictionary being accessed.
FYI: Mask Change Not Effective for Active Views
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Mask Change Not Effective for Active Views
DOCUMENT ID#: FYI.A.4701
DATE: 03SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When a view is active and the mask is changed for a field in the view, the field is not displayed according to the new mask.
SOLUTION
For the mask change to be effective, either the view should be released and recalled or the field should be dropped and re-added to the view.
FYI: CLIB Documentation Error: AFPOpenFileFork()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The compiler gives a type mismatch error for AFPOpenFileFork() NetwareHandle parameter.
SOLUTION
NetwareHandle parameter is documented as a long *; it should be BYTE *.
FYI: SETJMP() Does Not Work
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SETJMP() Does Not Work
DOCUMENT ID#: FYI.A.3164
DATE: 03SEP92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: SETJMP() does not work or causes abend.
ISSUE/PROBLEM
If an NLM application has a #include <cdecl.h> statement after a #include <setjmp.h>, the cdecl #pragma in cdecl.h will override the #pragma in setjmp.h. This causes the compiler to push the setjmp parameter on the stack, rather than loading it into register EAX, which is what setjmp() is expecting.
SOLUTION
Must put #include <setjmp.h> after #include <cdecl.h>.
FYI: TimedWaitOnLocalSemaphore Has One Last Abend
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: TimedWaitOnLocalSemaphore Has One Last Abend
DOCUMENT ID#: FYI.A.3163
DATE: 03SEP92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: Server abends after NLM is unloaded.
ISSUE/PROBLEM
If an NLM uses TimedWaitOnLocalSemaphore, and before the timer expires the NLM is unloaded, the server will abend when the timer expires and CLIB tries to wake up the NLM. The abend will read something like:
"CFreeUpProcessFromSpecificSemaphore called with invalid process id"
SOLUTION
There is not a general solution for this problem. The application can implement its own TimedWaitOnLocalSemaphore, using one of the callback functions (this is how CLIB does it), or in some (rare) cases, a sigterm handler can be used, which signals the semaphore so it can come out of the TimedWait. An API call would also work. Or, just do not use the TimedWaitOnLocalSemaphore function for now.
FYI: Integer Data Type Description
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Integer Data Type Description
DOCUMENT ID#: FYI.A.2517
DATE: 03SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The description in the NetWare SQL 3.0 Getting Started manual for the integer data type reads: "An integer data type is a signed or unsigned whole number". This leads some programmers to the conclusion that any of the three types of integer (1, 2 or 4 bytes) can be signed AND unsigned. Actually, only the one byte integer is treated as unsigned; two and four byte integers are always treated as signed.
SOLUTION
NA
FYI: Problem with AIOWriteData
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with AIOWriteData
DOCUMENT ID#: FYI.A.4123
DATE: 02SEP92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation for AIOWriteData() mentions that the function does not succeed unless the entire requested data length can be copied to the transmit buffer all at once. However this is not the case. AIOWriteData() will allow partial writes.
SOLUTION
This is an error in the documentation. AIOWriteData() will allow partial writes, in which case the unsent characters would have to be resent.
FYI: Status 4 Can Be Returned on Insert
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 4 Can Be Returned on Insert
DOCUMENT ID#: FYI.A.1946
DATE: 02SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Status 4
ISSUE/PROBLEM
Inserting a record into a table defined in the dictionary returned a status 4 (Key Value Not Found). The table to which the record was being inserted was a dependent table (Referential Integrity enabled).
SOLUTION
On inspection, it was found that the parent table's table-ID (a field in the NetWare SQL dictionaries) was different than when the two tables were originally created. When doing the insert to the dependent table, NetWare SQL was attempting to enforce referential integrity constraints, based upon the original table-ID of the parent table. However, this table-ID was no longer a valid table-ID, hence the status 4.
It was later discovered, that before the insert was attempted, Referential Integrity had been disabled for the database, the parent table had been dropped, and re-created with slightly different characteristics. When the table (parent) was re-created, the table-ID that was assigned to it by NetWare SQL 3.0 was different from the one originally assigned to it. This hypothesis was confirmed by running RIUTIL with the /R option; an error similar to the following was returned:
"Table ID = 122 not found in FILE.DDF"
A solution to this problem is to drop both tables and re-create them. This may cause new problems if there were other tables in the dictionary that were related to these two tables.
A better solution to this problem is to run RIUTIL with the /R option to obtain the original table-ID of the parent table and then update the value of table-ID (for the parent table) in FILE.DDF (the first field of X$File). This field is a non-modifiable key in FILE.DDF; so the only way to change the value is to use BUTIL to RECOVER all the records from FILE.DDF, then delete all records from FILE.DDF, then modify the value in the sequential file, and finally LOAD the records back into FILE.DDF.
FYI: Gupta SQL Router Compatibility
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Gupta SQL Router Compatibility
DOCUMENT ID#: FYI.A.1873
DATE: 01SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Gupta SQL Router that ships with NetWare SQL version 3.0 is compatible with Gupta's SQL Windows development kit version 3.0.x. It is not compatible with Gupta's SQL Windows 3.1.x.
SOLUTION
NA
FYI: Status 2108 Returned by the NSUTIL.NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 2108 Returned by the NSUTIL.NLM
DOCUMENT ID#: FYI.A.1765
DATE: 01SEP92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Status 2108 when importing/exporting data with NSUTIL.NLM
ISSUE/PROBLEM
When trying to use the server version of the NetWare SQL Maintenance Utility (NSUTIL.NLM) to perform a BLOAD, COPY, LOAD, or SAVE, a status 2108 "Device Is Not Assigned to a File Server" will be returned if the dictionary location of the table(s) involved contain drive letters.
SOLUTION
Change the dictionary so that the location (i.e. Btrieve file name) of each table consists only of the file name, or an absolute path to the file name. Alternately, use the client version of NSUTIL on a DOS or OS/2 workstation.
FYI: XQLExec with SELECT Statement
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQLExec with SELECT Statement
DOCUMENT ID#: FYI.A.2519
DATE: 31AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: XQLExec is not necessary for SELECT statement.
ISSUE/PROBLEM
In the XQL 2.11 Programmer's manual the line "Using substitution variables always requires three function calls" leads programmers to believe that XQLExec is needed. In the NetWare SQL 3.0 Application Programmer's Interface manual, the line "You must always use the following function calls when executing statements that contain substitution variables:" gives the same impression.
If the statement compiled is a SELECT statement with substitution variables, only the XQLSubst function needs to be called before calling the XQLFetch function. XQLExec must be called after XQLSubst for other types of statements, such as INSERT, UPDATE, DELETE, etc. in order to actually perform the requested operation.
SOLUTION
NA
FYI: Status 313 Using Embedded SQL Transactions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 313 Using Embedded SQL Transactions
DOCUMENT ID#: FYI.A.2518
DATE: 31AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: Continuation of FYI.A.1737
SYMPTOM: Status 313 on start transaction call using Embedded SQL 3.0
ISSUE/PROBLEM
If an EXEC SQL START TRANSACTION statement is executed in an embedded SQL program, followed by an EXEC SQL COMMIT WORK statement, the next attempt to start a transaction will return a status 313 - Transaction already started.
SOLUTION
The workaround mentioned in FYI.A.1737 (written when the same problem was found with version 2.11 of XQL/NetWare SQL) still applies. Use the following statements to control explicit transaction processing in an embedded SQL program:
EXEC SQL EXECUTE IMMEDIATE "START TRANSACTION";
EXEC SQL EXECUTE IMMEDIATE "COMMIT WORK";
EXEC SQL EXECUTE IMMEDIATE "ROLLBACK WORK";
FYI: Closing Files in a Transaction
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Closing Files in a Transaction
DOCUMENT ID#: FYI.A.1874
DATE: 31AUG92
PRODUCT: Btrieve
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Status 41
ISSUE/PROBLEM
If a file is opened in read only mode during a transaction then that file is not treated as being in the transaction. Other users can update, delete and insert into the file. If that is the case, can you close the file in the transaction?
SOLUTION
In the client environment (Btrieve for Dos version 5.10a ) a status 41, Operation Not Allowed, is returned if the application attempts to close the file. In the client-server environment ( Btrieve NLM version 6.0 ) the close is allowed in the transaction. The book does document that closing a file in a transaction is an invalid operation so the status 41, in the client environment, is a valid status code.
FYI: Data Types for Group Aggregates
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Data Types for Group Aggregates
DOCUMENT ID#: FYI.A.1764
DATE: 31AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The data types returned by the various group aggregates available for an SQL SELECT statement vary depending on the data type of the field and the type of aggregate. This is important to know when fetching the data in its internal format, since a data buffer must be set up properly to receive the data.
For the COUNT group aggregate, the data will always be returned as a 4-byte integer. For the MAX and MIN aggregates, the data will be returned as the same data type and length as the field used for the aggregate. For the SUM and AVG group aggregates, the data type returned varies for different field data types. Following is a chart explaining what is returned.
field data type SUM or AVG data type
--------------------------------------
autoinc float(8)
bfloat float(8)
bit float(8)
decimal(x,y) decimal(10,y)
float float(8)
integer float(8)
logical float(8)
money(x,2) money(10,2)
numeric(x,y) numeric(15,y)
numericsts(x,y) numericsts(15,y)
Notice that Decimal, Money, Numeric, and NumericSTS all return the same data type as the field, except the size is the maximum allowable size for that data type (10 for decimal and money, 15 for numeric and numericsts). All other data types result in an 8-byte float being returned.
The above information is true for NetWare SQL version 3.0. With XQL/NetWare SQL version 2.11, SUM and AVG always returned an 8-byte float value.
SOLUTION
NA
FYI: CheckPipeStatus() Does Not Return Correct Status
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CheckPipeStatus() Does Not Return Correct Status
DOCUMENT ID#: FYI.A.4804
DATE: 28AUG92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: CheckPipeStatus() does not return an "Incomplete Pipe" status (0xFE) when an incomplete pipe exists between host and target stations. It returns a "Failure" status (0xFF) instead.
ISSUE/PROBLEM
The "Incomplete Pipe" status (0xFE) is not a valid result for CheckPipeStatus().
SOLUTION
Do not expect an "Incomplete Pipe" (0xFE) status from CheckPipeStatus(). A "Failure" status (0xFF) is returned instead.
FYI: Memory Fault with t_errno
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Memory Fault with t_errno
DOCUMENT ID#: FYI.A.3855
DATE: 28AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Accessing t_errno (TLI errno) from an NLM gives Read memory Fault if the NLM is run under PROTECT.NLM.
SOLUTION
Just ignore this error. PROTECT.NLM is not supposed to give this error.
FYI: Status -103 on Update Statement
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status -103 on Update Statement
DOCUMENT ID#: FYI.A.3019
DATE: 28AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: Status -103 returned on Update statement when no records are updated.
ISSUE/PROBLEM
NetWare SQL/XQL returns the informative status code -103 (UPDATE Statement Completed Successfully) on Update statements even thought there is no record satisfying the restriction. In other words, the following statement returns status -103 when there is no record with Appointment^Code = 1.
UPDATE Appointment
SET Appointment^Date = 01/25/92
WHERE Appointment^Code = 1
SOLUTION
This is a valid status code since the Update statement did not fail. It simply could not find any records matching the restriction. If the application must know if a record has been updated, the application needs to execute XQLStatus. The XQLStatus function will return the number of records updated and number of records rejected.
FYI: QUEST and the NetWare SQL Gupta SQL Router
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: QUEST and the NetWare SQL Gupta SQL Router
DOCUMENT ID#: FYI.A.1875
DATE: 28AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Gupta SQL Router which ships with NetWare SQL 3.0 does NOT support QUEST.
SOLUTION
NA
FYI: BSPXCOM Running Out of Sessions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BSPXCOM Running Out of Sessions
DOCUMENT ID#: FYI.A.1871
DATE: 28AUG92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Status 91, Status 95
ISSUE/PROBLEM
BSPXCOM.NLM will appear to hang after running out of sessions if users continuously try to obtain an SPX session with BTRIEVE after exceeding the limit. The workstation can receive status 95, Session No Longer Valid, or 91, Server Error. This is true for the 5.x and 6.0 NetWare Btrieve environments. Once this occurs BTRIEVE must be stopped and reloaded at the server.
SOLUTION
Load the NetWare patch SPXFIX1.NLM.
FYI: MAC Support and the DESKTOP.AFP Directory
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MAC Support and the DESKTOP.AFP Directory
DOCUMENT ID#: FYI.A.2674
DATE: 27AUG92
PRODUCT: NetWare Operating System
PRODUCT VERSION: 3.x
SUPERSEDES: NA
SYMPTOM: Should the DESKTOP.AFP subdirectory ever be restored
from a Backup?
ISSUE/PROBLEM
For MAC support on NetWare the AFP.NLM keeps a set of files in a hidden directory on the SYS: volume named DESKTOP.AFP. This directory consists of several files used to store the information where MAC files can find their supporting utilities and other information. It is very relevant to how and where the programs and files reside on the volumes and thus, must be maintained precisely.
To restore the DESKTOP.AFP directory from a backup, the AFP.NLM must first be unloaded. Such a restore is not recommended since if any files and AFP related programs (utilities) have been moved or deleted, the DESKTOP will not contain correct and timely information with respect to the current configuration.
It is recommended to REBUILD the DESKTOP from a MAC workstation itself. The MAC will update the DESKTOP to reflect the current directory setup and where it may find the pertinent programs and files.
SOLUTION
Use the MAC capability to rebuild the DESKTOP instead of restoring from backup.
FYI: Is VIPX.386 Loaded for Windows 3.x?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Is VIPX.386 Loaded for Windows 3.x?
DOCUMENT ID#: FYI.A.2670
DATE: 27AUG92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: Is VIPX.386 loaded?
ISSUE/PROBLEM
This is in amendment to a previous FYI on checking if VIPX.386 is loaded. Numerous requests for the complete API were made and it is summarized below.
To check if VIPX.386 is loaded requires an interrupt line 2F call.
AX = 1684h
BX = 0200h
On return ES:DI will both be 0 if VIPX.386 is "NOT" loaded. Any other values seem to dictate that VIPX "IS" loaded.
Example Borland C++ code:
|
|
insertIntoListBox("Calling INT 2F - ax = 1684h, bx = 0200h....");
asm {
push es
push di
push ax
push bx
mov ax, 0x1684
mov bx, 0x0200
int 2fh
mov ax, es
mov ESrc, ax
mov ax, di
mov DIrc, ax
pop ax
pop bx
pop di
pop es
}
insertIntoListBox("es:di = %d:%d",ESrc, DIrc);
if (ESrc + DIrc)
insertIntoListBox("VIPX.386 IS loaded");
else
insertIntoListBox("***** VIPX.386 NOT loaded *****");
|
|
------------------------------------------------
SOLUTION
NA
FYI: SET NCPFILE Console Command and Btrieve for DOS Performance
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SET NCPFILE Console Command and Btrieve for DOS Performance
DOCUMENT ID#: FYI.A.2116
DATE: 27AUG92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: All Versions
SUPERSEDES: NA
SYMPTOM: Btrieve performance increased up to 300%.
ISSUE/PROBLEM
A user who was using Btrieve for DOS with NetWare 3.11, by chance, changed the SET NCPFILE = OFF at the server console. Then the user noticed that the performance of Btrieve WRITE operations increased tremendously, up to 300 percent.
SOLUTION
Btrieve for DOS uses an undocumented DOS call (COMMIT) which forces synchronization of Disk I/O requests by requiring a confirmation reply back from the server that a previous WRITE request was actually written to disk before continuing with other requests. Thus, the default setting for the NCPFILE is ON. By changing this default setting by executing SET NCPFILE = OFF at the server console, the server will send a confirmation reply immediately upon RECEIPT of a WRITE request from Btrieve (causing the server to "LIE" to Btrieve).
However, the WRITE request is not actually written to disk, but queued in server cache and written to disk when most convenient. This confirmation causes Btrieve not to wait and continue on to other requests, thus, significantly increasing write operation performance. This is very much like opening a Btrieve file in accelerated mode and is not really recommended unless the server has a very reliable UPS.
FYI: Numeric and NumericSTS Data Types
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Numeric and NumericSTS Data Types
DOCUMENT ID#: FYI.A.1763
DATE: 27AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The "Getting Started" manual included with NetWare SQL 3.0 contains descriptions for all the data types supported. The description of the numeric and numericsts types contain the statement:
"The total display size required for a numeric [numericsts] field is equal to the maximum number of significant digits plus 1 for a decimal point and 1 for a possible sign."
This is a little confusing since it sounds like the decimal point is being stored as part of the data. However, the description above is referring to the "display size", not the internal storage.
If a table is created with a numeric(10,2) field, this will use 10 bytes of the record, where each digit takes up one byte. The decimal point is not actually stored, but is instead implied to be two bytes from the right of the 10 bytes. So, the longest data value that can be inserted is 12345678.99, which is 10 digits long.
Data values that use less than 10 digits will be 0 padded on the left hand side. Negative numbers follow the same rules, except that the sign is encoded into the right-most byte. The table below includes several examples of how numeric data is stored.
Data Value Internal Format (10 bytes)
------------ ---------------
12345678.99 1234567899
-12345678.99 123456789R
100.50 0000010050
Refer to the Getting Started manual for a complete list of special characters used to encode negative numbers.
Similarly, if a table is created with a numericsts(10,2) field, this will also use 10 bytes of the record, where each digit takes up one byte. However, the right most byte is reserved for a sign, leaving only 9 bytes available to store data digits. The decimal point is still not stored, and is implied to be two bytes from the right of the right most digit, which is three bytes from the right of the total field due to the sign byte. So, the longest data value that can be inserted into this field is 1234567.99, which is 9 digits long. The table below includes several examples of how numericsts data is stored.
Data Value Internal Format (10 bytes)
------------ ---------------
1234567.99 123456799+
-1234567.99 123456799-
100.50 000010050+
SOLUTION
NA
FYI: The XQLStatus SQL-Level Function and Microsoft BASIC PDS 7.X
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The XQLStatus SQL-Level Function and Microsoft BASIC PDS 7.X
DOCUMENT ID#: FYI.A.2118
DATE: 26AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Status Buffer returns nothing
ISSUE/PROBLEM
The XQLStatus Manager Level Call provides information about the last SQL statement that was executed. This call requires three parameters with the following options:
iOption = 0 -----> requires that the Status Buffer be at least 8-bytes long or two 4-byte integers. On certain SQL statements(SELECT, UPDATE, DELETE or INSERT), NetWare SQL will return the number of records selected in the first 4 bytes followed by a reject count in the next 4 bytes, otherwise, it will return a 0 for both values.
iOption = 1 -----> request more detailed information about a non-zero status code returned on a previous SQL call. This requires that the status buffer be at least 30 bytes long.
It is obvious, that if option 0 is used, the logical way to set up this status buffer is to create a structure containing two LONG variables types. In Microsoft BASIC PDS 7.X, this is accomplished using the TYPE and END TYPE statements:
TYPE StatBuffer
SelectCount AS Long
RejectCount AS Long
END TYPE
DIM sStatBuf As StatBuffer
However, if this structure is passed in the XQLStatus call using the appropriate calling convention as specified by the NWSQLBA7.OBJ interface, a status 0 is returned on the call, but no values are returned in the status buffer.
SOLUTION
A User-Defined TYPE structure cannot be defined and passed as the status buffer parameter using the NWSQLBA7.OBJ interface. All the assembly level calls associated with this parameter are string operations. Therefore an empty 8-byte variable length string must be defined for the status buffer parameter. Upon a successful return code, this string variable can then be parsed to extract the appropriate integer values. The following is a suggested procedure for accomplishing this:
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: /fpc Compiler Switches for WATCOM/386
DOCUMENT ID#: FYI.A.2671
DATE: 24AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: Abends on floating point divisions when /fpc switch is used.
ISSUE/PROBLEM
This is just a reminder that when building NLMs, do not use the /fpc switch. This was intended for "linking in the emulation code" with the application. The emulation code for the NLM SDKs is in CLIB.
If /fpc is used, server abends may result.
SOLUTION
Do not use the /fpc switch when building NLMs.
FYI: Accidentally Linking with CLIB3S
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Accidentally Linking with CLIB3S
DOCUMENT ID#: FYI.A.3162
DATE: 21AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: Server Abend, or just incorrect results
ISSUE/PROBLEM
If a symbol NOT in CLib is referenced in an OBJ, and it happens that the symbol is in the DOS static library CLIB3S, WLINK will not only pull in the definition for the DOS function, but will also pull in other modules that contain symbols referenced by that object module.
For example: The API dup() was referenced by an NLM, and not only was dup() pulled in, but unlink(), __get_errno_ptr(), and a host of other APIs were too. This will cause many undesirable results! If an interrupt line 21 is executed, the server will abend, making the problem very easy to resolve. However, other much more subtle bugs might go unnoticed. One case was a DOS API failing with -1, but errno showing 0, since the errno from a library module was getting set instead of CLibs thread errno!
SOLUTION
Always use Option NOD when linking. This keeps WLINK from searching the libraries whose names are imbedded into the OBJs. Or, do not set the LIB386 environment variable; that way the LINKER cannot find the DOS libraries.
FYI: Date Masks in Xtrieve Reports
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Date Masks in Xtrieve Reports
DOCUMENT ID#: FYI.A.1762
DATE: 17AUG92
PRODUCT: Xtrieve Plus
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Currently, there is no way to put a mask on the date that prints as a result of the @date text directive in an Xtrieve report. The date will always print using the mask mm/dd/yy (i.e. 08/17/92).
SOLUTION
As a workaround, add a User-Defined date field to the view, and specify CURRENT as its definition. This field will always have the Current date, and when placing this field on the report, the user will be prompted to specify a mask.
FYI: EVENT_TRUSTEE_CHANGE Not Triggered
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: EVENT_TRUSTEE_CHANGE Not Triggered
DOCUMENT ID#: FYI.A.3854
DATE: 14AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If an NLM registers for the EVENT_TRUSTEE_CHANGE through CLIB.NLM, the event is not raised every time a trustee is deleted. However, the event is raised when a trustee is added.
SOLUTION
This is a problem with the Operating System and not with CLIB. Right now there is no workaround available.
FYI: IPXYield() Warning Messages
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPXYield() Warning Messages
DOCUMENT ID#: FYI.A.3853
DATE: 14AUG92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Windows 3.1 debug version of the kernel gives the following warning messages for IPXYield() (Netware C for Windows internal API):
1. Register class: invalid h instance
2. Register class: windows procedure not exported
3. Create Window: null instance handle
SOLUTION
No solution is available right now to get rid of these warnings.
FYI: SetLockMode Fails
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetLockMode Fails
DOCUMENT ID#: FYI.A.3380
DATE: 13AUG92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Set Lock Mode fails when used against a 3.11 server.
ISSUE/PROBLEM
SetLockMode failed when used against a 3.11 file server. The user was using the 3.02 shell.
SOLUTION
Upgrading to the 3.26a shell resolved the problem.
FYI: NetWare for SAA
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare for SAA
DOCUMENT ID#: FYI.A.2838
DATE: 13AUG92
PRODUCT: 3270 Tools for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: # Processes did not relinquish frequently while loading
COMMEXEC.NLM
ISSUE/PROBLEM
The COMMEXEC.NLM autoloads NMAGENT.NLM. This sometimes gives the following message:
"# of processes did not relinquish frequently"
The number is not consistent.
SOLUTION
Loading NMAGENT.NLM before the COMMEXEC.NLM gets rid of these spurious messages.
FYI: User Limit when Using DAL Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: User Limit when Using DAL Server
DOCUMENT ID#: FYI.A.1940
DATE: 13AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The number of users accessing NetWare SQL version 3.0 through the DAL Server NLM is limited to 200, even if the 250-user version of NetWare SQL 3.0 is being used.
This restriction is actually due to a limitation in the current version of the AppleTalk NLM (200 users).
SOLUTION
NA
FYI: Problem with Option Copyright
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with Option Copyright
DOCUMENT ID#: FYI.A.4122
DATE: 12AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKa
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
WLINK 6.0 that goes out with the Network C for NLMs SDKa does not support the copyright option. This will give a "Directive error near the option copyright" error.
SOLUTION
Use WLINK 7.0 or higher that goes out with SDKb. This will support the copyright option.
FYI: Missing DOS Examples in LU6.2 Kit
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Missing DOS Examples in LU6.2 Kit
DOCUMENT ID#: FYI.A.4121
DATE: 12AUG92
PRODUCT: LU6.2 Tools for DOS
PRODUCT VERSION: Feb Release
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The February release of NetWare for SAA LU6.2 toolkit is missing the DOS examples.
SOLUTION
They have been included in the NetWare LU6.2 Tools Release 1.4.02.
FYI: Problem with Set Spool Flags
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with Set Spool Flags
DOCUMENT ID#: FYI.A.4120
DATE: 12AUG92
PRODUCT: NetWare System Calls
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Set Spool Flags call E0h(02h) that is used to set the form number, does not get set while sending a job to a print queue. This can be verified through PCONSOLE. The form number remains 0. This occurs with the shell v3.26 but works fine with the shell v3.22.
SOLUTION
There is no current workaround except to use the older shell.
FYI: Debug APIs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Debug APIs
DOCUMENT ID#: FYI.A.4119
DATE: 12AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Debug APIs may be used in an application NLM to debug that NLM. They may also be used to write a full-fledged debugger. If an NLM allocates memory that is being corrupted by some other program in the system, a write breakpoint can be set on the memory address at the time the memory is allocated. This would then save the effort of manually stepping through the internal debugger. The standard NetWare 386 Debug APIs are:
- int RegisterDebugger( T_DebuggerStruct *debuggerStruct, int position );
- int UnRegisterDebugger( T_DebuggerStruct *debuggerStruct );
- int ReserveABreakPoint( void );
- int CSetABreakPoint( int breakpointNumber,
LONG breakLinearAddress,
BYTE type, BYTE size );
- int UnReserveABreakPoint( int breakpointNumber );
- LONG LoadModule( struct ScreenStruct *screenID,
BYTE *commandLine, LONG loadOptions );
SOLUTION
NA
FYI: Btrieve Parameters in NetWare for SAA
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Parameters in NetWare for SAA
DOCUMENT ID#: FYI.A.2845
DATE: 12AUG92
PRODUCT: 3270 Tools for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Error - Load File Reference Undefined Symbol
ISSUE/PROBLEM
The DBA.NLM manages its communication services database using the Btrieve NLM. Configuring the communication server with specific communication services, the configuration information (such as the names of the users authorized to use a particular service) is stored in the communication services database, which is a Btrieve file. Although Btrieve is not part of the NetWare Communication Services, the Btrieve Record Manager NLM is used by the database agent NLM (DBA.NLM) to manage records within the database.
SOLUTION
Before the COMMEXEC.NLM is loaded which autoloads DBA.NLM and looks for Btrieve, the Btrieve NLM must be loaded with the following parameters:
Load Btrieve -u=1 -p=4096 -f=20 -h=60 -l=20 -c
-c for index compaction
-f for number of open files
-h for number of file handles
-l for number of file locks
-p for page size
-u for allocation of data compression buffers
These parameters are the minimum required for NetWare for SAA. These might be needed to increase the values accordingly for additional NetWare Communication Services.
If Btrieve is not loaded with these parameters, the following error will occur:
LC: Unable to load Communication Executive module:
Agent Type 118h error code 15h.
FYI: NetWare 3270 WSMULTI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 3270 WSMULTI
DOCUMENT ID#: FYI.A.2839
DATE: 12AUG92
PRODUCT: 3270 Tools for DOS
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: Cannot send hot key through sendkey() in WSMULTI.
ISSUE/PROBLEM
In a WSMULTI environment a hot-key to the presentation space cannot be sent through the Sendkey() HLLAPI API.
SOLUTION
The SetSessionParameters() function needs to be called by setting the CONPHYS option in order to jump to the host session and jump physically back to the DOS session.
FYI: SPX APIs and the ES Register
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SPX APIs and the ES Register
DOCUMENT ID#: FYI.A.2672
DATE: 12AUG92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: SPX APIs may trash memory
ISSUE/PROBLEM
A problem observed using the Microsoft C compiler version 5.1 and up seems to cause some problems for SPX APIs in the SMALL and MEDIUM memory model due to assumptions about the ES register.
The C Interface for DOS SPX APIs makes an assumption that the ES register will be the same as the DS register. The following scenario forces this condition to be false and thus possibly causes memory overwrites and system crashes. As an example:
SPXEstablishConnection(..) is used
int _far *dummy = NULL; /* set pointer to NULL (0:0) */ int ivar;
:
:
ivar = *dummy; /* forces ES:SI to the pointer value */
SPX<function name> /* call any SPX function using ECBs */
The SPX function saves and restores the ES register but is also used just prior from returning from the call; ES is assumed to point to DS (after is was restored). But the assignment of "*dummy" to "ivar" forces ES:SI to be the "dummy" pointer. This will essentially be writing into 0000:0000 (with the above example).
This may cause very strange problems (or behavior of applications) when FAR addressing capabilities are used just prior to calling SPX functions.
SOLUTION
Just prior to calling SPX functions, set ES = DS in the SMALL and MEDIUM model or modify the C Interface for DOS source to "pop es" following its manipulation.
FYI: Restoring Btrieve Files from Tape
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Restoring Btrieve Files from Tape
DOCUMENT ID#: FYI.A.1943
DATE: 12AUG92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Restoring Btrieve data from a tape may return the following error:
"Access Denied - No Data"
This error was only being returned on Btrieve's pre-image files.
SOLUTION
Some tape backup software packages do a directory listing of all files before doing the backup. Then, they proceed to backup all the files in the directory listing. However, if any of the files are in use, they do not get backed up. Consequently, when restoring, the backup software checks the directory listing and tries to restore all files; but if the file does not exist on the tape, then this error is returned.
FYI: Using ODI Drivers with Xtrieve 4.01a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using ODI Drivers with Xtrieve 4.01a
DOCUMENT ID#: FYI.A.1941
DATE: 12AUG92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01a
SUPERSEDES: NA
SYMPTOM: Workstation hangs.
ISSUE/PROBLEM
Xtrieve 4.01a hangs when loading, if used with the ODI (workstation) drivers.
SOLUTION
Use the /e parameter on the Xtrieve and XQLP command lines.
If XQLP (2.01) is not explicitly loaded, and /e is used on the command line for Xtrieve, the workstation will still hang. Apparently the /e does not get transferred to the XQLP command line. If XQLP is explicitly loaded with the /e parameter and Xtrieve is also loaded with the /e parameter, then everything works as expected, and the workstation does not hang.
FYI: Defaults for the NetWare NetBIOS Option
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Defaults for the NetWare NetBIOS Option
DOCUMENT ID#: FYI.A.2841
DATE: 11AUG92
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Some defaults for the NetWare NetBIOS option in the NET.CFG file are incorrectly documented in the NetWare Requester manual.
SOLUTION
The correct defaults are:
COMMANDS Default=128 commands
NAMES Default=32 names
SESSIONS Default=64 sessions, maximum allowed=64 sessions
FYI: Configuration Parameters under OS/2 v2.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Configuration Parameters under OS/2 v2.0
DOCUMENT ID#: FYI.A.2840
DATE: 11AUG92
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using Token-Ring network boards that support frame sizes up to 4 KB, type the following lines in the NET.CFG file:
Link Support
buffers 14 4210
SOLUTION
The NetWare Requester manual incorrectly says to use "15" instead of "14."
FYI: TRUSTEE NLM Abends if Event Fails to Register
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: TRUSTEE NLM Abends if Event Fails to Register
DOCUMENT ID#: FYI.A.3161
DATE: 10AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NLM called TRUSTEE.NLM, in /NOVX/EVENTS/TRUSTEE has a problem where it will not close its local semaphore if an error occurs during event registration.
SOLUTION
Use an atexit() routine to register the unload code instead of the AtUnload API, and replace the open semaphore code with the following:
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Opening a File Called "log"
DOCUMENT ID#: FYI.A.3160
DATE: 10AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NLM hangs.
ISSUE/PROBLEM
When opening a file named "log", CLib will return a handle, but when read() is called with that handle, it blocks and never comes back.
SOLUTION
Turns out, STREAMS is returning a file handle when it is passed this filename. CLib calls the STREAMS open API first, and when STREAMS returns a handle, CLib just links that handle into the open file list and returns it to the application.
Two workarounds for the problem are listed below:
1. Do not pass in lower case names to CLib, For example: strupr() first!
2. Pass full volume path specifications instead, For example: SYS:LOG
Finally, other situations exist where this "feature" is occurring.
For example:
If "log" is passed in with one or more digits after it ("log123") the same thing will happen.
FYI: Problem with NLM Event Examples
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with NLM Event Examples
DOCUMENT ID#: FYI.A.3159
DATE: 10AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKd
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The examples in the /NOVX/EVENTS directory on intercepting OS events are checking for a return code of 0 from the RegisterForEvent API if an error occurs.
SOLUTION
Fix the problem by checking for -1 returned from RegisterForEvent if the registration fails.
FYI: GetBridgeDriverConfiguration() in C Interface
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetBridgeDriverConfiguration() in C Interface
DOCUMENT ID#: FYI.A.2842
DATE: 10AUG92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: EthernetFlagBits incorrect in GetBridgeDriverConfiguration
ISSUE/PROBLEM
GetBridgeDriverConfiguration() always returns 1 for the 802.2 frame type for NE2000 cards and 0xFF for Western Digital cards. If 802.3, Ethernet_II or any other frame format is used it returns garbage.
SOLUTION
No solution is available at this time.
FYI: Embedded SQL, WATCOM and Math Coprocessors
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Embedded SQL, WATCOM and Math Coprocessors
DOCUMENT ID#: FYI.A.2427
DATE: 10AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Embedded SQL application hangs
ISSUE/PROBLEM
When using the WATCOM compiler v8.5 to compile NetWare SQL v3.0 embedded SQL source code, the /FPI switch is used by default. The /FPI switch is for use with a math coprocessor, which is appropriate if the workstation has a math coprocessor. However, if the workstation does not have a math coprocessor, then the embedded SQL application may hang at runtime.
SOLUTION
If the workstation does not have a math coprocessor, then use the /FPC switch to compile the embedded SQL source code, instead of the /FPI switch.
FYI: Stored Statements and Status 204
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Stored Statements and Status 204
DOCUMENT ID#: FYI.A.1865
DATE: 10AUG92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If the file id for a file is changed, then all stored statements that pertained to that file will become invalid. A file id will change if the definition of the file has been dropped and readded to the dictionary. A status 204, Table is not defined in the dictionary, is returned when trying to recall a stored statement that has an invalid file id.
SOLUTION
NA
FYI: Compiling Microsoft BASIC 7.x Btrieve Applications under OS/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Compiling Microsoft BASIC 7.x Btrieve Applications under OS/2
DOCUMENT ID#: FYI.A.2115
DATE: 05AUG92
PRODUCT: Btrieve for OS/2
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve for OS/2 Developer Kit ships a protected mode interface called BC7PBTRV.OBJ. How is this interface used when compiling and linking a Btrieve application to run under the OS/2 environment?
SOLUTION
Compiling a Btrieve application written in BASIC to run under OS/2 is very much the same as compiling to run under DOS, the only difference being the BC command line switches and the libraries which need to be included at link time. This additional command line switch is called /Lp. This switch instructs the compiler to create a protected-mode object file (.OBJ). Once this protected mode .OBJ is created, it can be included with the interface (BC7PBTRV.OBJ) at link time.
MS BASIC 7.X allows the user two ways of compiling. The first one being a complete command line syntax and the later one consisting of a series of prompts. The command line syntax for compile and link is:
BC <SOURCEFILE>, <OBJECTFILE>, <LISTINGFILE>, <OPTIONS>;
To compile a Btrieve application called SAMPLE.BAS for OS/2 the syntax would look like:
BC SAMPLE.BAS /O /LP
Without the /O compiler option specified, the linker will look for a special run-time library during link time. Since the OBJECTFILE and LISTINGFILE were not included, the compiler will, by default, create these .OBJ and .LST files with the same name as the SOURCEFILE. In the above case, SAMPLE.OBJ and SAMPLE.LST will be created.
The LINK command is used to create an executable file as follows:
LINK <OPTIONS> <OBJFILES>, <EXEFILE>, <MAPFILE>, <LIBRARIES>, <DEFFILE>;
Therefore, to link the SAMPLE.OBJ to its appropriate object files and libraries, the command line would look like:
LINK SAMPLE.OBJ+BC7PBTRV.OBJ, , , OS2.LIB+BCL71ENP.LIB+BTRCALL.LIB;
Since EXEFILE, MAPFILE and DEFFILE were not used, by default, SAMPLE.EXE, SAMPLE.MAP files will be created.
FYI: Erroneous Results when Passing DataBuf and DataBufLen by Value
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Erroneous Results when Passing DataBuf and DataBufLen by Value
DOCUMENT ID#: FYI.A.1945
DATE: 05AUG92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 6; Status 34
ISSUE/PROBLEM
Certain Btrieve operations are documented to not require the use of the Data Buffer (DB) and Data Buffer Length (DBL) parameters. Accordingly, it should not be a problem if these parameters are passed by value, with their contents being whatever was returned from the previous Btrieve operation. But, in some cases this causes problems, as documented below.
SOLUTION
For the Btrieve Drop Supplemental Index operation, if DB and DBL are passed by value, Btrieve returns a status 6 (Invalid Key Number) even though a valid key number is provided.
On the Btrieve Extend operation, if DB and DBL are passed by value, Btrieve returns a status 34 (Invalid Extension Name) even though a valid extension name is provided.
Both of these situations are remedied, and correct results are seen, by passing to Btrieve the address of DB and DBL, even though the Btrieve Programmer manual reflects that these operations do not require the use of these two parameters.
FYI: Extending Btrieve Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Extending Btrieve Files
DOCUMENT ID#: FYI.A.1944
DATE: 05AUG92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Below are the results of a few scenarios that were tested regarding extending Btrieve files:
1. If C:\CDS.BTR is specified as the extension filename and there already exists a file by that name, the Btrieve Extend operation returns status 32 (Extend I/O Error). This happens even if C:\CDS.BTR is an ASCII file.
2. If a BUTIL -STAT is attempted on an extension file, Btrieve returns a status 2 (I/O Error).
3. If an extension file is deleted, and the original Btrieve file is attempted to be opened, Btrieve returns status 13 (Extended File Error). This is as expected.
But, if an extension file is replaced with the original Btrieve file, and an attempt is made to open the original Btrieve file, the Open operation is successful. A subsequent Get First operation returns status 2; but an Insert operation returns status 0 and the record does get inserted.
SOLUTION
NA
FYI: Btrieve Status 30 and /E
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status 30 and /E
DOCUMENT ID#: FYI.A.1942
DATE: 05AUG92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.00c
SUPERSEDES: N/A
SYMPTOM: Status 30 accessing Btrieve file.
ISSUE/PROBLEM
The following scenario was encountered:
Using Btrieve for DOS version 5.00c, an application accessed a floppy drive without error, however, when the file was moved to the hard drive a status 30 (Not a Btrieve File) would be returned when trying to access the file. When the file was copied back to the floppy, the status 30 would not occur.
SOLUTION
It could have been a bad spot on the hard disk, but that was not established to be true. However, when the /e parameter was added to the command line when loading Btrieve, the status 30 mysteriously disappeared (even when using the hard disk). So, it could have possibly been a conflict with expanded memory.
It has recently been found that Btrieve for DOS v5.10a (and possibly earlier versions also) can be loaded with a /p parameter of 4096 without an appropriate /m parameter (such as /p:4096 /m:18), if the /e parameter is not used and expanded memory is present. If the /e parameter is used, Btrieve returns the message "Insufficient memory for parameters specified" indicating that there is not enough memory to load Btrieve with the requested value for the /p and /m parameter, as it should.
The bottom line is, the rules for using an appropriate /m parameter for the specified /p parameter may not be checked in an environment with expanded memory, but they should still be followed. Try the /e parameter when working with Btrieve for DOS.
FYI: 3270 LAN Workstation v2.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: 3270 LAN Workstation v2.0
DOCUMENT ID#: FYI.A.2843
DATE: 04AUG92
PRODUCT: 3270 Tools for DOS
PRODUCT VERSION: 2.0
SUPERSEDES: NetWare 3270 Lan Workstation v2.0
SYMPTOM: Receive_Data_Exit parameter is inconsistent.
ISSUE/PROBLEM
The Attach_lu verb in the NetWare APPC Technical Reference indicates that the Receive_Data_Exit parameter specifies the address of the application subsystem code that will notify the receipt of data or status for a specified conversation. If the application does not wish to be notified of received data or status, this parameter should be set to all ones instead of zeroes. However, the setting of these parameters has no effect on the Attach_lu call.
SOLUTION
The old LU6.2 protocol boundary on the workstation does not recognize this. Receive_data_exit functionality is not implemented under Netware 3270 LAN Workstation v2.0 but it is under v2.01.
FYI: Writing Applications in Different Memory Models
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Writing Applications in Different Memory Models
DOCUMENT ID#: FYI.A.1939
DATE: 04AUG92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Btrieve application hangs when making Btrieve call.
ISSUE/PROBLEM
Originally, an application together with the interface had been compiled in the small memory model, using a Borland C project file. Subsequently, the application was modified and a project file was used to compile the application in the large memory model.
Since the source code of the Btrieve interface had not changed since it was last compiled, the interface was not recompiled in the large memory model. The resulting EXE had one OBJ (main application source code) compiled in the large memory model and another OBJ (Btrieve interface) compiled in the small memory model. This resulted in the application hanging when it was executed.
SOLUTION
Make sure that each component of an application is compiled in the same memory model as the others.
FYI: GetSemaphoreInformation on a 3.x Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetSemaphoreInformation on a 3.x Server
DOCUMENT ID#: FYI.A.3382
DATE: 03AUG92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetSemaphoreInformation call is not returning any information in the ReplyBuffer when issued as documented.
SOLUTION
The request and reply buffer should be documented as below:
Request Buffer
--------------
Offset Request Packet Contents Bytes
------ ----------------------- -----
0 Length of Request Packet 2
2 Sub-function Code 1
3 Last Record Seen 2
5 Semaphore Name Length 1
6 Semaphore Name SemaphoreNameLength
Reply Buffer
--------------
Offset Reply Packet Contents Bytes
------ ------------------------ -----
0 Next Request Record 2
2 Semaphore Open Count 2
4 Semaphore Value 2
6 Semaphore Count 1
The following repeats Semaphore Count times (max 150)
7 Logical Connection Number 2 Hi - Low
9 Task Number 2 Hi - Low
~
~
FYI: The Default Screen of an NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The Default Screen of an NLM
DOCUMENT ID#: FYI.A.3378
DATE: 03AUG92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 20d
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can you define an NLM to not have a default screen?
SOLUTION
Use the linker directive as below:
OPTION SCREENNAME NONE
FYI: Btrieve File Corruption on NetWare v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve File Corruption on NetWare v3.11
DOCUMENT ID#: FYI.A.2038
DATE: 03AUG92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: FYI.A.2019
SYMPTOM: Data Files Corrupted
ISSUE/PROBLEM
There is a problem with NetWare version 3.11 that causes Btrieve files to become corrupt. If the page size of a Btrieve data file is not evenly divisible into 4096 (is NOT 512, 1024, 2048 or 4096), the file may be corrupted.
SOLUTION
The NetWare 3.11 patch ASNCRDFX.NLM (Async Read Fix) fixes this problem. This patch is available on NetWire in the file 311PT7.ZIP.
FYI: Btrieve 6.0 Open with Owner Name
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 6.0 Open with Owner Name
DOCUMENT ID#: FYI.A.2037
DATE: 03AUG92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: Status 51 on Btrieve open operation
ISSUE/PROBLEM
With Btrieve version 6.0, if the data buffer length on an open of a data file with an owner name is not at least as long as the owner name in the data buffer INCLUDING the null terminator, a status 51 will be returned.
Although it has always been documented in the programmer's manual to pass the data buffer length as the length of the owner name including the null, Btrieve 5.x did not check the data buffer length on the open and a status 51 would not be returned because of a short data buffer length.
SOLUTION
On open operations, specify the data buffer length as the length of the owner name including the null terminator.
FYI: Btrieve 6.0 Reset
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 6.0 Reset
DOCUMENT ID#: FYI.A.2036
DATE: 03AUG92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: File is left open after Reset from a different workstation.
ISSUE/PROBLEM
If a Btrieve file is opened from a workstation running Brequest 6.0, this connection cannot be reset from a workstation running 5.16 Brequest. If a file is opened from a workstation running Brequest 5.16, its connection can be reset from a workstation running Brequest 5.16 or 6.0.
With the BTRIEVE.NLM version 6.0, a SUCCESSFUL (status = 0) Btrieve operation that accesses the NLM must be performed from a workstation before this workstation can remotely reset another station. This is different from the 5.15 NLM in which the reset was not dependent upon the success (status !=0) of the call.
SOLUTION
If a Btrieve file is opened with Brequest 6.0 and needs to be reset remotely, run Brequest 6.0 on the remote workstation. Before the reset operation, make a successful call to the Btrieve NLM to establish a connection.
FYI: Xtrieve Unable to Recall View
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve Unable to Recall View
DOCUMENT ID#: FYI.A.2035
DATE: 03AUG92
PRODUCT: Xtrieve Plus
PRODUCT VERSION: 4.11
SUPERSEDES: NA
SYMPTOM: "No Views in Dictionary" returned with Xtrieve.
ISSUE/PROBLEM
If NSREQ is loaded with too low of /d: parameter, Xtrieve will return an error "No Views in Dictionary" instead of a 2101 (data message buffer too small) when an attempt is made to recall a view.
SOLUTION
Load NSREQ with a larger /d: parameter.
FYI: Rolling Forward with Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Rolling Forward with Btrieve
DOCUMENT ID#: FYI.A.2034
DATE: 03AUG92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The following is a behavior list for the roll forward process in relation to Btrieve 5.x and Btrieve 6.0.
1. Log files created with 5.x Btrieve can be applied to 5.x files with the 6.0 xBROLL utilities (DBROLL, PBROLL, WBROLL).
2. Log files created with 6.0 Btrieve are not compatible with the 5.x roll forward utilities (BROLLFWD and WBROLL 5.x) and cannot be used with the 5.x utilities.
3. If a single log file contains some entries that were created by 5.x Btrieve and some entries that were created by 6.0 Btrieve using the 6.0 xBROLL utilities, if the first entry is created by 5.x Btrieve, only the 5.x entries in the log file will be applied. If the first entry in the log file is created by 6.0 Btrieve, the 6.0 xBROLL utilities will only apply the 6.0 entries.
4. If a log file is created with 5.x Btrieve, the changes in the log file can be applied to a Btrieve file with the xBROLL utilities multiple times.
If a log file is created by 6.0 Btrieve, (even if the data file is a 5.x format file), once xBROLL is used to apply the changes to a Btrieve file, the entries in the log file are marked as "used" and cannot be applied again to a data file using xBROLL.
SOLUTION
NA
FYI: Close File and Abort Queue Job is Referenced but Not Documented
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Close File and Abort Queue Job is Referenced but Not Documented
DOCUMENT ID#: FYI.A.1324
DATE: 03AUG92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Some system calls refer to a function Close File and Abort Queue Job; however, this function is not documented.
SOLUTION
The functions that should be used are close (fileHandle) and Remove Job From Queue (E3h 6Ah).
FYI: Btrieve NLM v6.0 Ignores -N Load Parameter
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve NLM v6.0 Ignores -N Load Parameter
DOCUMENT ID#: FYI.A.1046
DATE: 03AUG92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve NLM v6.0 now ignores the "-n" load parameter. The actual number of files that can be accessed from within a transaction is now equal to the "-f" load parameter. The "-f" load parameter specifies the Maximum Number of Open Files.
The documentation in the Installation and Operation for NetWare SQL v3.0 manual is not accurate. At the bottom of page 2-31, the Default value for the Number of Files Per Transaction parameter for NetWare Btrieve is incorrect. It should be the same as the Maximum Number of Open Files parameter.
SOLUTION
NA
FYI: Determining a DOS or NetWare Device
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Determining a DOS or NetWare Device
DOCUMENT ID#: FYI.A.3381
DATE: 31JUL92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can an application tell whether a device is a local DOS device, or a redirected network device?
SOLUTION
Use the DOS call, interrupt line 21H function 44, subfunction 0D, to detect if you are on a redirected device. This should work for all NetWare platforms, including NetWare Lite.
FYI: Bad Reply from GetConnectionsOpenFiles
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Bad Reply from GetConnectionsOpenFiles
DOCUMENT ID#: FYI.A.3379
DATE: 31JUL92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: Bad Reply Received From GetConnectionsOpenFiles
ISSUE/PROBLEM
The GetConnectionsOpenFiles System Call is not returning data as documented.
SOLUTION
The ReplyBuffer is documented incorrectly. The ReplyBuffer should be defined as below:
Offset Reply Packet Contents Bytes
------ ---------------------- -----
0 Next Request Record 2
2 Number Of Records 2
~
~ The following repeats Number of Record Times
~
4 Task Number 2
6 Lock Type 1
7 Access Control 1
8 Lock Flag 1
9 Volume Number 1
10 Reserved 9
19 Name Space 1
20 FileNameLength 1
21 FileName FileNameLength
~
~
FYI: ATTACH.C Does Not Reorder Internet Addresses
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ATTACH.C Does Not Reorder Internet Addresses
DOCUMENT ID#: FYI.A.3377
DATE: 31JUL92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Automatic EOJs are not generated when application terminates.
ISSUE/PROBLEM
Automatic End Of Job Requests are not occurring when the NetWare C Interface - DOS AttachToFileServer API has been used to create the attachment to the file server. This becomes noticeable when applications terminate, but do not close their files.
Normally, the shell will generate an EOJ and close the files for the work station. However, due to this bug, the files remain open. This happens because the shell generates EOJs based on the network addresses stored in the shell connection table. These addresses need to be ordered, using the order number (also in the shell connection table) from lowest to highest network address. The current version of ATTACH.C does not order the network addresses.
SOLUTION
A fixed version of ATTACH.C source code can be obtained from Novell Austin.
FYI: Renaming Subdirectories and NetWare
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Renaming Subdirectories and NetWare
DOCUMENT ID#: FYI.A.3376
DATE: 31JUL92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: Unable to rename subdirectory -- invalid path.
ISSUE/PROBLEM
DOS will allow a subdirectory to be renamed even when a full path is specified in the destination subdirectory name. However, NetWare does not support this capability.
DOS also supports the syntax supported by NetWare.
SOLUTION
NA
FYI: NetWare Runtime, NetWare SQL 3.0, and Applications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Runtime, NetWare SQL 3.0, and Applications
DOCUMENT ID#: FYI.A.2426
DATE: 31JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What are the special issues that need to be addressed when running a NetWare SQL application on a NetWare Runtime (1-user) server with NetWare SQL 3.0?
SOLUTION
NetWare Runtime is provided with every 20+ user count of NetWare SQL 3.0. It provides a means to run NetWare SQL applications in a dedicated database environment.
NetWare Runtime only allows one NetWare connection/login to the server. This connection is intended for administrative purposes, and is generally used by the supervisor in order to perform necessary maintenance on the server.
However, since NetWare SQL does not require users to have a NetWare connection to the server in order to access NetWare SQL, this environment can be used for NetWare SQL applications.
There are two restrictions for database applications when running on a NetWare Runtime server. These are briefly described in the NetWare SQL Installation and Operation manual on page 2-38.
The first restriction is that the NetWare Runtime server cannot accept direct Btrieve calls from an application. Although NetWare SQL does not require a NetWare connection, NetWare Btrieve does. Therefore, an application which makes only Btrieve calls, or makes both Btrieve and NetWare SQL calls cannot be run against files on a NetWare Runtime server.
The second restriction is that the application must use a named database. Since the user does not have a connection, there are no drive mappings established for the Runtime server. A named database can be defined on the NetWare Runtime server using the NetWare SQL Setup Utility indicating which directories contain the database files. The application can then use this database name to login to NetWare SQL and access the data files.
If the application and/or the data dictionary contains references to drive mappings, a NetWare SQL Requester Configuration File can be defined to indicate what directories on the NetWare Runtime server should be used whenever a particular drive mapping is encountered by the application. This is described in more detail in the NetWare SQL Installation and Operation manual on pages 2-47 to 2-48.
FYI: NetWare 2.2 Non-Dedicated, Btrieve VAP, and Arcnet
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 2.2 Non-Dedicated, Btrieve VAP, and Arcnet
DOCUMENT ID#: FYI.A.2425
DATE: 31JUL92
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 20 - Btrieve Not Loaded
ISSUE/PROBLEM
The following situation occurred on a network running NetWare v2.2 non-dedicated, one additional workstation, the patched Btrieve VAP v5.15, the patched Brequest v5.16, and Arcnet topology.
When a Btrieve application is run at the workstation and also at the DOS side of the NetWare v2.2 non-dedicated server, everything works fine. However, if the user at the workstation logs out, turns off the workstation, and tries to run the Btrieve application at the server only, then a "Btrieve is not Loaded" error message is returned.
Userlist shows two Btrieve VAP connections, so the Btrieve VAP is still loaded. Why is Brequest not able to detect that the Btrieve VAP is loaded?
SOLUTION
First of all, the Arcnet topology is a token-passing topology, and requires at least two active workstations (or two workstations with shells loaded) to communicate with each other so that a token can be passed back and forth.
The Btrieve VAP advertises itself through the bindery. A problem exists when there is not another workstation to receive and return these advertisements. When Brequest checks the bindery to see if the Btrieve VAP is loaded, it finds out that the Btrieve VAP cannot advertise itself, and a "Btrieve is not Loaded" error message returns.
There are two workarounds for this problem:
1. always have one active workstation (besides the non-dedicated server) when using Arcnet;
2. Use a different topology (such as Ethernet)
FYI: Active Named Databases
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Active Named Databases
DOCUMENT ID#: FYI.A.1761
DATE: 31JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NDBMON and SQLScope does not show database name
ISSUE/PROBLEM
When defining a named database through the NDBSETUP.NLM, there may be a delay before NSSPXCOM.NLM starts advertising that name on the network.
NSSPXCOM periodically checks to see if anything has changed in the DBNAMES.CFG file, which is where the database names are stored.
If NSSPXCOM is unloaded and reloaded, it should start advertising all defined database names (which are not already being advertised from another server) immediately.
SOLUTION
NA
FYI: Assembler Errors Returned for SPXESR.ASM Using Large Model
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Assembler Errors Returned for SPXESR.ASM Using Large Model
DOCUMENT ID#: FYI.A.1326
DATE: 31JUL92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: Error A2024:Segment parameter has changed
ISSUE/PROBLEM
When assembling the SPXESR.ASM with CMACROS.INC v5.02 in large model, the above error is returned for the createSeg macro. The reason for this is that the assembler uses simplified segment directives which sets the following default segments and types for the large memory model .CODE directive:
DIRECTIVE NAME ALIGN COMBINE CLASS
The SPXESR has the following macro:
createSeg SPXESR_TEXT,CODE1,BYTE,PUBLIC,CODE
When assembled, the above error message is returned since we define the alignment to be BYTE instead of WORD.
SOLUTION
Modify the line with WORD instead of BYTE.
FYI: Query Name Service Returns All Ports under NASI v3.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Query Name Service Returns All Ports under NASI v3.0
DOCUMENT ID#: FYI.A.1325
DATE: 31JUL92
PRODUCT: NASI
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Query Name Service returns the first port it finds.
ISSUE/PROBLEM
When issuing a NASI function Query Name Service (21h), the first port found is returned to the querying application. Prior to version 3.0 of NASI, the first unassigned port was returned for the application to connect.
SOLUTION
The Query Name Service request buffer is documented as 30 bytes long. There are two additional bytes which have been added to the end of the buffer. The first byte returns the port number and the second byte returns the status of the port. This status should be used to determine if the port is available. The possible return values for the status are:
0 = Idle (Available)
1 = Allocated (Available)
2 = Connected
3 = On Hold
FYI: NLMs and Multiple Line COPYRIGHT Messages
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NLMs and Multiple Line COPYRIGHT Messages
DOCUMENT ID#: FYI.A.2673
DATE: 30JUL92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: Displaying several lines in the Copyright message for an NLM
ISSUE/PROBLEM
Yes, it is possible to have a multi-line copyright message. Here is how:
1. Put 2 dummy characters where the CR LF would be in the copyright message. For Example: In the *.LNK file:
option copyright 'This is the 1st line$#The Third$#The last'
2. Using DEBUG or its pseudo application, replace each "$" with a "0x0D" an the "#" with a "0x0A", in the copyright statement (very near the top of the NLM.
That is it. Theoretically the maximum is 255 characters.
SOLUTION
NA
FYI: Storing and Recalling Views with Different Versions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Storing and Recalling Views with Different Versions
DOCUMENT ID#: FYI.A.3018
DATE: 29JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Status 253 returned by Xtrieve while recalling a view
ISSUE/PROBLEM
If a view is stored in Xtrieve using NetWare SQL 3.0, it cannot be recalled using XQLP 2.11 or NetWare SQL 2.11. When attempting to do so, Xtrieve will return a status 253 (incorrect version of view definition). However, NetWare SQL 3.0 is able to recall views that are stored by XQL/NetWare SQL 2.11 through Xtrieve.
SOLUTION
NA
FYI: Disappearing Attributes with Xtrieve 4.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Disappearing Attributes with Xtrieve 4.10
DOCUMENT ID#: FYI.A.3017
DATE: 29JUL92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Attributes specified for fields disappear from edit screen.
ISSUE/PROBLEM
If several views are active at the same time, attributes defined in the dictionary, such as default values, may not show up on the Edit screen. This is because XQLP is running out of buffers. If any other active views are released, or XQLP is loaded with a larger /b parameter, the attributes reappear.
SOLUTION
Load XQLP with a larger /b parameter. The maximum /b value for XQLP NetWare v2.11a software is 36.
FYI: NetWare LU6.2 Feb Release / Common Return Codes Listing
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare LU6.2 Feb Release / Common Return Codes Listing
DOCUMENT ID#: FYI.A.2844
DATE: 29JUL92
PRODUCT: LU6.2 Tools for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Missing common return codes
ISSUE/PROBLEM
The Netware APPC Technical Reference manual does not have common return codes listed at the back of the manual. It has verb specific and syslog return codes but common returns codes are missing.
SOLUTION
Use the old manual which has common return codes listed. It has been reported as a documentation error and will be corrected in next version.
FYI: Cannot have Underscores in a Filename Used with EDIT.NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Cannot have Underscores in a Filename Used with EDIT.NLM
DOCUMENT ID#: FYI.A.2837
DATE: 29JUL92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: EDIT.NLM does not take underscores in a filename.
ISSUE/PROBLEM
Files containing underscores in their filename cannot be edited with the EDIT.NLM. This was reproduced with the EDIT.NLM dated 08-29-90.
SOLUTION
NA
FYI: How to Configure Private/Global DOS Boxes under OS/2 2.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How to Configure Private/Global DOS Boxes Under OS/2 2.0
DOCUMENT ID#: FYI.A.1870
DATE: 29JUL92
PRODUCT: OS/2
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How do you set up a Private DOS box or Global DOS box in OS/2 2.0?
SOLUTION
1. Check CONFIG.SYS to be sure that the following two lines appear:
DEVICE=D:\NETWARE\VIPX.SYS
DEVICE=D:\NETWARE\VSHELL.SYS
If they are REMmed out, be sure to remove the REM from both lines.
NOTE: If they are REMmed out, make sure to restart the machine after removing the REM.
2. Select the COMMAND PROMPTS folder from the OS/2 SYSTEM ICON. When selecting it, the OS/2 Full Screen, OS/2 Window, DOS Full Screen, DOS Window etc... Icons will appear.
3. Position the mouse over the DOS Full Screen or DOS Window ICON. Press the RIGHT or SECOND mouse button. The first selection on the Pop-up Menu will be OPEN.
4. Select "OPEN."
5. Select "SETTINGS."
6. Select the "SESSION" tab.
7. Select "DOS Settings."
8. The "DOS Settings" selection will bring up a list box. Go down to the NETWARE_RESOURCES entry and select it. Up in the right hand corner of the box there will be a VALUE: selection box. The values that can be selected are NONE, PRIVATE, GLOBAL. NONE and PRIVATE should be the same right now. Select the mode desired. After selecting, SAVE the configuration.
9. Exit the SETTINGS menu by double clicking on the left hand corner folder ICON.
10. Now run the DOS box.
For a PRIVATE DOS box, the Virtual IPX driver is loaded.
For the GLOBAL DOS box, VIPX and the Virtual Shell drivers are loaded.
There may be other methods of setting the GLOBAL and PRIVATE dos boxes; this is just to pass on one method that was tried.
FYI: Brequest and OS/2 2.0 DOS Boxes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest and OS/2 2.0 DOS Boxes
DOCUMENT ID#: FYI.A.1869
DATE: 29JUL92
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: System Halted
ISSUE/PROBLEM
Does Brequest work in an OS/2 2.0 DOS Box?
SOLUTION
Brequest v5.16 along with Btrieve v5.15 NLM will not run properly in multiple PRIVATE DOS boxes. The system is halted. This has been reported to development.
Brequest v5.16 along with the Btrieve v5.15 NLM appears not to work in a GLOBAL DOS box either. Trap D occurs when Btrieve calls are made. This has been reported to development.
FYI: How Is a PRIVATE DOS BOX Run?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How Is a PRIVATE DOS BOX Run?
DOCUMENT ID#: FYI.A.1868
DATE: 29JUL92
PRODUCT: OS/2
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How is a PRIVATE DOS BOX run?
SOLUTION
This FYI is meant to show a basic way to set up the PRIVATE DOS box. It does not cover all possible setup features.
After starting the DOS BOX change directory to the NETWARE directory. NETX.COM can be found there. Run NETX.COM. Then go to the LOGIN drive. If the DOS BOX has not been customized by any means, then it is usually found on drive L:.
After logging in, be sure to check that COMSPEC is still set correctly. Check to be sure that the path specified by COMSPEC is still appropriate for the environment. OS/2 by default sets COMSPEC to C:\OS2\MDOS\COMMAND.COM. If the login procedure has changed that value and it is not clear if the current setting is valid, change it back to the OS/2 setting.
FYI: Difference between Global and Private DOS Boxes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Difference between Global and Private DOS Boxes
DOCUMENT ID#: FYI.A.1867
DATE: 29JUL92
PRODUCT: OS/2
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What is the difference between a Global DOS Box and a Private DOS Box in OS/2 2.0?
SOLUTION
A GLOBAL DOS box maintains all mappings to a server that a previous OS2 session had established. It is the same NetWare connection as all the previous OS/2 sessions. The GLOBAL DOS is much like the DOS box in OS/2 1.3 in the way it adopts all previous OS/2 session mappings and logins. The major difference is that there can be multiple GLOBAL DOS boxes in OS/2 2.0.
A PRIVATE DOS box creates a new connection with the file server that is being logged into. If logging into the same file server that the user already had connections with in the OS/2 sessions, then USERLIST would report two USERS with that login name. For each PRIVATE DOS box a new connection number is assigned.
FYI: What Are VIPX and VSHELL in OS/2?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: What Are VIPX and VSHELL in OS/2?
DOCUMENT ID#: FYI.A.1866
DATE: 29JUL92
PRODUCT: OS/2
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the CONFIG.SYS for OS2 2.0 there are two drivers listed, VIPX.SYS and VSHELL.SYS. What are they?
SOLUTION
VIPX.SYS is a virtual IPX driver.
VSHELL.SYS is a virtual shell.
Both of these drivers are used with the OS/2 dos box to support IPX/SPX communication in the DOS box. VSHELL allows the user to maintain the same mappings to their file servers as was established by previous OS/2 sessions.
FYI: Status 26 on Create Table Statement
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 26 on Create Table Statement
DOCUMENT ID#: FYI.A.1760
DATE: 29JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Status 26 - Number of Keys
ISSUE/PROBLEM
The CREATE TABLE statement in NetWare SQL 3.0 has an option to specify the page size for the resulting Btrieve file.
If no page size is specified, NetWare SQL determines an optimum page size based on the lengths of all the fields in the table, the number of indexes that allow duplicates and other options that might be specified.
With certain table definitions, it is possible that NetWare SQL may determine that the optimum page size for a file is 1024 bytes, but does not take into account the fact that the definition contains 24 key segments.
In this case, a status 26 (Number of Keys) will be returned and the CREATE TABLE will fail.
With Btrieve v6.0, only 23 key segments can be defined for a Btrieve file with a page size of 1024. Earlier versions of Btrieve allowed 24 key segments on a file with a 1024 page size.
SOLUTION
Use the PAGESIZE option in the CREATE TABLE statement to explicitly tell NetWare SQL what page size should be used.
FYI: XQL and .SHR Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL and .SHR Files
DOCUMENT ID#: FYI.A.1759
DATE: 29JUL92
PRODUCT: XQL for DOS
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Sharing Violation error
ISSUE/PROBLEM
When the client version of XQL is loaded (XQL.EXE, XQLO.EXE, XQLP.EXE or XQLPO.EXE), it creates a "share" file, which is in the form of TAnnnnnn.SHR (where nnnnnn is a randomly generated number).
This file is created in the directory specified by the "/x:" parameter (which is where temporary sort files will be created), or in the user's current working directory if there is no "/x:" parameter specified. Before creating this file, XQL performs a clean-up operation to get rid of any extraneous .SHR files currently in the directory. These could have been left if a user rebooted a workstation without first unloading XQL.
When doing the clean-up, XQL attempts to delete each .SHR file in the directory. If a file was left from a previous session, it will be deleted. If a .SHR file in the directory is currently in use by another user, the delete will fail since the file is open. XQL does not check whether the delete succeeded or failed, and does not do any error checking on its attempted deletes.
The failed deletes due to an in-use .SHR file can produce different results in different environments. Under NetWare, when the delete fails, the DOS Error Level is set to 1, and the program continues. Under LAN Manager, attempting to delete an open file causes a sharing violation, which sets the DOS Error Level to 2, which is a critical error and aborts the program. In this environment, XQL fails to load when using a directory for its .SHR file that is already being used by another XQL user.
SOLUTION
In an environment where the sharing violation occurs, each user will have to specify a unique temporary sort file directory with the "/x:" parameter to successfully load XQL. One way to do this is to set "/x:" to a local drive or to the users directory on the network.
FYI: Ordinal Numbers for C-Interface for Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Ordinal Numbers for C-Interface for Windows
DOCUMENT ID#: FYI.A.2669
DATE: 27JUL92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What are the ordinal numbers for the Application Program Interfaces (APIs)?
When the C-Interface for Windows 1.3 SDK was introduced, the included DLLs were restructured, and the ordinal numbers do not match those in the documentation.
SOLUTION
The correct ordinal numbers may be found in the .DEF files on the distribution disks under the \SRC directories. The files are NWIPXSPX.DEF (communications, diagnostics and SAP), NWNETAPI.DEF (all non-communication services), and NWPSREV.DEF (print server services).
FYI: Status 870 on ALTER TABLE to Add Primary Key
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 870 on ALTER TABLE to Add Primary Key
DOCUMENT ID#: FYI.A.1938
DATE: 27JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Status 870 - Index Must Exist on ALTER TABLE
ISSUE/PROBLEM
Using NWSQL v3.0, if an ALTER TABLE is performed to add a primary key to a table that has RI defined on it, a status 870 (Index Must Exist On ALTER TABLE) is returned, even though the key that is being added as a primary key is defined in the table as a unique, non-null index. This only happens if the index in question is a segmented index, even though all the segments of the index are being used for the primary key.
SOLUTION
The workaround to this is the following: If the segmented key is defined in the table as index 0, then this error is not returned and the primary key definition is added properly.
FYI: BUTIL -STAT Returns Status 94
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BUTIL -STAT Returns Status 94
DOCUMENT ID#: FYI.A.1937
DATE: 27JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 94 - Permission Error
ISSUE/PROBLEM
A BUTIL -STAT of a Btrieve file flagged RO (ReadOnly) to NetWare, returns status 94. This was verified with BUTIL.EXE 5.12 (and Btrieve for DOS 5.10a) and with BUTIL.NLM v5.15a (and Btrieve NLM v5.15). This was also verified to be the case with BUTIL NLM v6.01 and Btrieve NLM v6.0.
The use of BDEBUG (with BUTIL 5.12) revealed that BUTIL was attempting to open the file in Btrieve's NORMAL mode, which requires Read/Write access. Hence, the status 94.
SOLUTION
The current workaround is to flag the file RW (ReadWrite).
FYI: BUTIL.NLM 5.15a Requires Volume Name in Path
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BUTIL.NLM 5.15a Requires Volume Name in Path
DOCUMENT ID#: FYI.A.1936
DATE: 27JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 91 - Server Error
ISSUE/PROBLEM
BUTIL.NLM 5.15a requires that the volume name be part of the file name provided for BUTIL operations. For instance, the following syntax returns status 91 (Server Error) even if the file "FILENAME.BTR" is at the root directory of the server's SYS: volume:
load butil -stat filename.btr
However, following syntax returns the correct STAT information:
load butil -stat sys:filename.btr
SOLUTION
Always specify a complete path including the volume name for each Btrieve file involved in the BUTIL operation to be performed.
FYI: BUTIL 6.x Returns Version of Btrieve File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BUTIL 6.x Returns Version of Btrieve File
DOCUMENT ID#: FYI.A.1935
DATE: 27JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Included in the information returned by BUTIL -STAT (BUTIL 6.x), is the version of the Btrieve file. If the Btrieve file is a pre-6.0 file it returns:
File Version pre 6.0
If the Btrieve file is a 6.0 file, it returns:
File Version 60 (that is right, without the period!)
BUTIL 5.x did not return this information.
SOLUTION
NA
FYI: Declaring DLL Routines in Visual Basic
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Declaring DLL Routines in Visual Basic
DOCUMENT ID#: FYI.A.2117
DATE: 22JUL92
PRODUCT: ALL
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Since most DLL routines are written in C, this can cause problems for developers using Visual Basic. In order to translate the syntax of a typical API routine into a Visual Basic DECLARE statement, the developer must understand something about how both C and Visual Basic pass their arguments.
The following information will be useful in determining how to set up DECLARE statements in the Global Module of a Visual Basic application when using any of the Novell Database and Developer APIs.
SOLUTION
The usual way for C to pass numeric arguments is by Value: a copy of the value of the argument is passed to the routine. Sometimes C arguments are pointers, and these arguments are said to be passed by reference. Passing an argument by reference allows the called routine to modify the argument and return it to the calling routine.
C strings (Zstrings) and arrays are always passed by reference. Visual Basic, by default, passes all of its arguments by reference. In effect, when arguments are passed to a Visual Basic procedure, they are actually passed as "far" (32 bit) pointers to those values.
To pass arguments to a C routine that expects its arguments to be passed by value, the ByVal keyword must be used with the argument in the Declaration statement. One added wrinkle to this, is that Visual Basic strings do not use the same format as C strings. Visual Basic has overloaded the ByVal keyword to mean "pass a C string" when it is used with a string argument in a Declare statement. The following table can be used to help determine how certain arguments in an API call should be passed.
If the argument is: Declare it as:
A standard C string (LPSTR, char far *) ByVal S$
A Visual Basic String (see note) S$
An integer (WORD, HANDLE, int) ByVal I%
A pointer to an integer (LPINT, int far *) I%
A long (DWORD, unsigned long) ByVal L&
A pointer to a long (LPDWORD, LPLONG, DWORD far *) L&
A standard C array (A[]) Base type of Array
A Visual Basic array (see note) A()
A structure (user-defined TYPE) S As Struct
Note: Never pass a Visual Basic string or array to a DLL routine unless the DLL was written specifically for use with Visual Basic. Visual Basic strings and arrays are represented in memory by "descriptors" (not pointers), which are useless to DLL routines that were not written with Visual Basic in mind.
Visual Basic also allows arguments to be passed AS ANY. The AS ANY "data type" tells Visual Basic not to do any type checking for that argument. The developer can pass the function anything as long as it is what the function is expecting. If not, the application will probably UAE.
If an argument is declared AS ANY, it must be specified in the call how the argument shall be passed to the calling function. This is done by using the ByVal keyword for strings and for arguments that should be passed by value, and omitting the ByVal keyword for arguments that should be passed by reference.
For example: Using Btrieve, the situation may arise where the key buffer parameter must be passed differently depending on the operation that is to be performed. Simply declare the Key Buffer parameter AS ANY in the Global Module and setup the Btrieve call as follows:
'Global Module
Declare Function btrcall Lib "wbtrcall.dll" (ByVal Op%, ByVal Pb$, Db As Any,
Notice that the key buffer parameter (FileName$) is being specified to be passed by Value. Suppose later on in the code, the developer wants to pass a user-defined type for the key buffer on a GET EQUAL operation. Simply pass the structure by name for the key buffer as follows:
FYI: Least Value Returned for Duplicate Supplemental Key
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Least Value Returned for Duplicate Supplemental Key
DOCUMENT ID#: FYI.A.4302
DATE: 21JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A Btrieve operation 11 (Get Less Than or Equal) on a duplicate supplemental key returns the least value in the list even though that value is greater than the compared value (value in the Key buffer).
Example: Key Values = {20, 24, 30, 40, 55}
If the key buffer (compared value) has a value of 10 and the operation 11 is performed, Btrieve returns a value 20 (least value of the list). This operation should not return any values because 20 is not less than 10. This problem only exists when attempting to perform the operation 11 with a value less than the smallest value in the index.
This situation does not exist under client Btrieve.
SOLUTION
This has been submitted as a bug. No solution/workaround is provided at this time.
FYI: Status 84 (Record in Use) Returned on an Insert Operation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 84 (Record in Use) Returned on an Insert Operation
DOCUMENT ID#: FYI.A.4301
DATE: 21JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: Status 84 on insert operation
ISSUE/PROBLEM
Getting a status 84 "Record in Use" on an insert is a valid status code. This situation generally occurs in an environment where a high volume of Btrieve I/O operations are occurring, and was first seen during a simulation performing high-speed random inserts.
On an insert operation, Btrieve may return this status code because it is locking the key page for a brief period of time to update the information regarding the key value specified for the newly inserted record. At this time, if another user tries to insert a record that also needs to access the same key page, the insert will result in a Status 84.
SOLUTION
Applications should trap for this Status code and retry the insert operation.
FYI: DOS NetBIOS and the OS/2 2.0 DOS Box
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DOS NetBIOS and the OS/2 2.0 DOS Box
DOCUMENT ID#: FYI.A.3375
DATE: 21JUL92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 100
SUPERSEDES: Previous FYI dates 7-14-92
SYMPTOM: NetBIOS.EXE hangs in OS/2 2.0 Virtual DOS Machine (VDM)
ISSUE/PROBLEM
Under certain circumstances, NetBIOS.EXE hangs if loaded in an OS2 2.0 VDM. This is true if the NETBIOS.SYS and NBDEAMON.EXE are loaded in the OS/2 CONFIG.SYS. This is considered a design restraint. It is not possible with the current implementation of the OS/2 2.0 Requester to load both OS/2 and DOS NetBIOS.
SOLUTION
NA
FYI: Far Pointer Definition Problem with LU6.2 Tools
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Far Pointer Definition Problem with LU6.2 Tools
DOCUMENT ID#: FYI.A.4118
DATE: 16JUL92
PRODUCT: LU6.2 Tools for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The header file CPIC_NET.H that goes out with Netware for SAA LU62 Tools has a problem with its handling of far pointer definitions when using WATCOM v8.0 or later.
SOLUTION
Replace lines 40-42 with the following -
#ifdef far
#undef far
#endif
#define far
FYI: QueryServices() Returns Invalid Node Address
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The QueryServices() function seems to return an invalid internet address.
SOLUTION
Both the 1.22 and the 1.3 version of the C Interface-Windows SDK return the network, node, and socket in Intel lo-hi format. In addition, the 1.3 version returns the node address in a different order.
The correction for the 1.22 version was to reswap the values when they needed to be passed to another function. However, in the 1.3 version, after swapping to hi-lo order, the last two bytes of the address (4 and 5) are at the beginning instead of the end. For example, node address:
00 11 22 33 44 55
which should be stored in memory in the same byte order, is instead stored as:
44 55 00 11 22 33
To correct the situation, the following function can be added:
┌───────────────────────────┐
│ BYTE *FixNode(BYTE *node) │
│ { │
│ BYTE temp[2]; │
│ │
│ temp[0] = node[5]; │
│ temp[1] = node[4]; │
│ node[5] = node[3]; │
│ node[4] = node[2]; │
│ node[3] = node[1]; │
│ node[2] = node[0]; │
│ node[1] = temp[0]; │
│ node[0] = temp[1]; │
│ return node; │
│ } │
└───────────────────────────┘
and called like this:
FixNode(sapBuffer.Node);
The problem in the source to QueryServices() is easy enough to correct by removing the swaps of the network, node, and socket. But, because there is no easy way to replace one module in a DLL, the above solution is simpler.
FYI: _splitpath() in CLIB Does Not Work Properly
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: _splitpath() in CLIB Does Not Work Properly
DOCUMENT ID#: FYI.A.3852
DATE: 14JUL92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKc
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
_splitpath() returns incorrect results in the drive parameter.
SOLUTION
_splitpath() is supposed to return the volume name in the drive parameter, but it does not. It is not NetWare aware.
There is an alternate source of _splitpath() available upon request until it is fixed in the CLIB.NLM.
FYI: IPXODI and IPX/SPX Communications on NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPXODI and IPX/SPX Communications on NetWare Lite
DOCUMENT ID#: FYI.A.3374
DATE: 10JUL92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Unable to initialize IPX/SPX.
ISSUE/PROBLEM
NetWare Lite defaults to disabling the IPX/SPX and diagnostic capabilities of IPXODI. This makes it impossible for IPX/SPX, NetBIOS, or diagnostic applications to run.
SOLUTION
Do not use /A when loading IPXODI.
FYI: Print Server Printer Status Codes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Print Server Printer Status Codes
DOCUMENT ID#: FYI.A.3373
DATE: 10JUL92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare C Interface for DOS does not document the meaning of the values of the status byte returned by PSGetPrinterStatus().
SOLUTION
WAITING_FOR_JOB: Printer is available and ready for a print job.
WAITING_FOR_FORM: Printer is currently waiting for a new form to be mounted.
PRINTING_JOB: Printer is currently printing a print job.
PAUSED: Printer has been paused and will continue to print the active job when started.
STOPPED: Printer has been stopped and the current job aborted. When the printer is started it will begin to look for another job to print.
MARK_EJECT: Someone has paused or stopped the printer and sent a mark top of form or a page eject. The print is in the state of executing the request.
READY_TO_GO_DOWN: Printer has finished printing any currently active job and is ready to go down.
NOT_CONNECTED: Printer is not currently connected to the print server.
PRIVATE: A remote printer is not currently available as a network printer. This occurs when a command is sent to the print server telling it to release the printer.
FYI: Determining the File Size of a Deleted File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Determining the File Size of a Deleted File
DOCUMENT ID#: FYI.A.3372
DATE: 10JUL92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can the file size of a deleted file be determined?
SOLUTION
The ScanSalvagableFiles() function returns the size of a deleted file in the dataForkSize field. Although this is documented as being for the Macintosh, the size of all files is returned in this field.
FYI: Increasing the Maximum NetBIOS Names for a Workstation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Increasing the Maximum NetBIOS Names for a Workstation
DOCUMENT ID#: FYI.A.3371
DATE: 10JUL92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can the maximum number of NetBIOS names for a workstation be increased?
SOLUTION
This can be accomplished by using an undocumented SHELL/NET.CFG parameter. The syntax is outlined below:
NETBIOS NAMES=<Number>
A maximum of 250 names per workstation are possible.
FYI: Diagnostic Functions Not Returning All Data
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Diagnostic Functions Not Returning All Data
DOCUMENT ID#: FYI.A.3370
DATE: 10JUL92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.30
SUPERSEDES: NA
SYMPTOM: Diagnostic returned structure not completely filled.
ISSUE/PROBLEM
All diagnostic functions that use the NWmemmove function in the NWSTRING.C module of the NetWare C Interface - Windows SDK, v1.30, will not return all of the data expected in the structure. An example of this problem occurs when calling GetAllKnownNetworks().
SOLUTION
Make the source code changes outlined below and recreate the DLL with the OBJs and MAKE file provided with the SDK.
The two changes outlined above will resolve the problem and all of the data expected will be updated in the structures.
FYI: Documentation Error in NetWare SQL Manual
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Documentation Error in NetWare SQL Manual
DOCUMENT ID#: FYI.A.1758
DATE: 09JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare SQL 3.0 Installation and Operation manual incorrectly describes the use of the XQLLOCAL.DLL file for OS/2 workstations. On page 2-44 of the manual, it states:
This description is incorrect. A NetWare SQL application cannot access files located on a local hard drive. Since NetWare SQL utilizes NetWare Btrieve on the file server for all file I/O, the data files must be located on the file server in order for NetWare Btrieve to access them.
XQLLOCAL.DLL provides local processing for a small set of NetWare SQL data conversion functions that can be performed either at the client or the server. Having this DLL available allows these functions to be performed at the client, improving the performance of this processing.
If XQLLOCAL.DLL is not available, the data conversion requests will instead be performed at the server. The application will not see a difference in functionality, only performance. This is similar to the difference between the two NetWare SQL requesters available for DOS clients: NSREQ.EXE and NSREQS.EXE.
FYI: Calling the Btrieve Version Operation from an NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling the Btrieve Version Operation from an NLM
DOCUMENT ID#: FYI.A.1045
DATE: 09JUL92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Status 1 returned to NLM making Version call to Btrieve.
ISSUE/PROBLEM
When issuing a version operation (op code 26) to the Btrieve NLM from another NLM, the results vary depending on the version of Btrieve that is loaded. A version call against Btrieve v5.15 returns the following
a status 1 - Invalid Operation.
The same call against Btrieve v6.0 succeeds. This operation was necessary for NetWare SQL 3.0 so it could determine what version of Btrieve was loaded.
SOLUTION
Do not use the version operation from an NLM calling the 5.x Btrieve NLM. It can only be used with the 6.x version of the Btrieve NLM.
SPECIAL NOTE: The version operation when performed from a workstation will return the version of the requester that is loaded on that workstation. The operation is handled locally and not passed to the server at all.
FYI: Local Btrieve for Windows Default Page Size
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Local Btrieve for Windows Default Page Size
DOCUMENT ID#: FYI.A.1044
DATE: 09JUL92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Status 24 (Page Size Error)
ISSUE/PROBLEM
If the Btrieve for Windows (client version) DLL is initialized without specifying a "/P:" parameter (maximum page size), a default value of 512 will be used. This will result in a status 24 (Page Size Error) when attempting to open a Btrieve data file created with a larger page size. Other local Btrieve engines (DOS and OS/2) use a default page size of 1024.
SOLUTION
Initialize Btrieve with the appropriate "/P:" parameter according to the data files you intend to access. This can be done by setting the options= parameter in the WIN.INI file, or by calling the WBTRVINIT() function from a Windows application.
FYI: Extended Attributes Return Values Not Documented
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Extended Attributes Return Values Not Documented
DOCUMENT ID#: FYI.A.1666
DATE: 08JUL92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The advanced services functions which deal with extended attributes (EnumerateEA(), for example) can return values that are not documented.
SOLUTION
Possible returned values are as follows:
┌────────────────────────────────┬─────┐
│ FUNCTION │VALUE│
├────────────────────────────────┼─────┤
│ ERR_MISSING_EA_KEY │ 200 │
├────────────────────────────────┼─────┤
│ ERR_EA_NOT_FOUND │ 201 │
├────────────────────────────────┼─────┤
│ ERR_INVALID_EA_HANDLE_TYPE │ 202 │
├────────────────────────────────┼─────┤
│ ERR_EA_NO_KEY_NO_DATA │ 203 │
├────────────────────────────────┼─────┤
│ ERR_EA_NUMBER_MISMATCH │ 204 │
├────────────────────────────────┼─────┤
│ ERR_EXTENT_NUMBER_OUT_OF_RANGE │ 205 │
├────────────────────────────────┼─────┤
│ ERR_EA_BAD_DIR_NUM │ 206 │
├────────────────────────────────┼─────┤
│ ERR_INVALID_EA_HANDLE │ 207 │
├────────────────────────────────┼─────┤
│ ERR_EA_POSITION_OUT_OF_RANGE │ 208 │
├────────────────────────────────┼─────┤
│ ERR_EA_ACCESS_DENIED │ 209 │
├────────────────────────────────┼─────┤
│ ERR_DATA_PAGE_ODD_SIZE │ 210 │
├────────────────────────────────┼─────┤
│ ERR_EA_VOLUME_NOT_MOUNTED │ 211 │
├────────────────────────────────┼─────┤
│ ERR_BAD_PAGE_BOUNDARY │ 212 │
├────────────────────────────────┼─────┤
│ ERR_INSPECT_FAILURE │ 213 │
├────────────────────────────────┼─────┤
│ ERR_EA_ALREADY_CLAIMED │ 214 │
├────────────────────────────────┼─────┤
│ ERR_ODD_BUFFER_SIZE │ 215 │
├────────────────────────────────┼─────┤
│ ERR_NO_SCORECARDS │ 216 │
├────────────────────────────────┼─────┤
│ ERR_BAD_EDS_SIGNATURE │ 217 │
├────────────────────────────────┼─────┤
│ ERR_EA_SPACE_LIMIT │ 218 │
├────────────────────────────────┼─────┤
│ ERR_EA_KEY_CORRUPT │ 219 │
├────────────────────────────────┼─────┤
│ ERR_EA_KEY_LIMIT │ 220 │
├────────────────────────────────┼─────┤
│ ERR_TALLY_CORRUPT │ 221 │
└────────────────────────────────┴─────┘
FYI: Using Multiple VIEW.DDFs for a Set of Data Dictionary Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using Multiple VIEW.DDFs for a Set of Data Dictionary Files
DOCUMENT ID#: FYI.A.1120
DATE: 08JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Can more than one VIEW.DDF file exist for a set of data dictionary files? In the past, some users have set up multiple VIEW.DDF files for a set of DDF files, so that each user could have their own views stored exclusive of other users.
SOLUTION
With the introduction of named database support in NetWare SQL 3.0, the possibility of creating multiple VIEW.DDF files for a set of dictionaries is no longer an option. When a named database is created using NDBSETUP, there is only one path that can be specified for a set of DDF files. Therefore, it is not possible to specify multiple paths for different VIEW.DDF files relating to the field, file, and index DDFs for the named database.
FYI: How to Determine If TCPIP.EXE Is Loaded
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How to Determine If TCPIP.EXE Is Loaded
DOCUMENT ID#: FYI.A.3158
DATE: 06JUL92
PRODUCT: LWP for DOS
PRODUCT VERSION: 4.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Need to determine if TCPIP.EXE is loaded.
SOLUTION
Use INT 2F function 1740h. If AL = FF on return, TCPIP.EXE is loaded.
FYI: Cannot Register a Unique matherr() Handler with CLIB
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Cannot Register a Unique matherr() Handler with CLIB
DOCUMENT ID#: FYI.A.3157
DATE: 06JUL92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKc
SUPERSEDES: NA
SYMPTOM: Messages overwriting screen output during math error
ISSUE/PROBLEM
There does not seem to be a way to have a matherr() API defined for an NLM.
SOLUTION
According to the documentation, a matherr() function can simply be included into an NLM, and when any type of math error occurs, MATHLIBx will call the matherr() function. However, this is not exactly the way it works. With CLIB versions previous to 3.11b, there was not a way to register a matherr() API. Starting with version 3.11b, a function RegisterMatherrHandler() will allow an NLM to register its own matherr() routine. This can be done on a per-NLM basis.
The routine should behave as the documentation describes. Calling RegisterMatherrHandler() with a NULL parameter will unregister a previously registered matherr handler.
FYI: xUpdall Status 207 with NetWare v2.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: xUpdall Status 207 with NetWare v2.11
DOCUMENT ID#: FYI.A.2033
DATE: 06JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Status 207 on xUpdall function call
ISSUE/PROBLEM
NetWare SQL version 2.11 will return a status 207 (field does not exist in the dictionary) if an xUpdall function is attempted on more than one field in a single call. This problem is fixed in both NetWare SQL version 3.0 and XQL version 2.11.
SOLUTION
Use NetWare SQL version 3.0.
FYI: TTS and NetWare Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: TTS and NetWare Btrieve
DOCUMENT ID#: FYI.A.2031
DATE: 06JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 15 inside a Btrieve transaction
ISSUE/PROBLEM
If TTS is disabled on the server and the Btrieve data files to be accessed with the Btrieve NLM version 5.15 are flagged transactional (T), a status 15 (preimage I/O error) will be returned on all file updates (meaning insert, update or delete operations) to the data files within a Btrieve Begin (19) and End (20) transaction. The status 15 will not be returned in two cases:
1. The update is performed outside of a Btrieve transaction, or
2. Before the update is performed inside of a Btrieve transaction, a successful update has occurred outside of a transaction with the current instance of Brequest. This case is reinitialized once Brequest is unloaded and loaded again on the workstation.
In all cases, even when the 15 is not returned, no preimaging is being done for the files if TTS is not enabled at the server.
SOLUTION
If Btrieve data files are flagged transactional, TTS must be enabled at the server for preimaging to succeed. If TTS is disabled, flag all Btrieve files non-transactional (-T).
FYI: New Parameters for SERSERV.NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: New Parameters for SERSERV.NLM
DOCUMENT ID#: FYI.A.4117
DATE: 02JUL92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKC
SUPERSEDES: NA
SYMPTOM: Problems with COM2
ISSUE/PROBLEM
This follows an earlier FYI on SERSERV.NLM and a problem with COM2. The fixed SERSERV.NLM, however, has new parameters that are required when loading the NLM. The board number as well as the port number must be specified; for example:
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: xRecall Documentation Error
DOCUMENT ID#: FYI.A.2032
DATE: 02JUL92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is an error on page 3-191 in the Application Programming Interface manual of the NetWare SQL 3.0 documentation set. For the xRecall function, iOpenMode is specified as being passed by reference. It should be corrected to specify iOpenMode as being passed by value.
SOLUTION
NA
FYI: Status 2001 with Btrieve for Windows Requester
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 2001 with Btrieve for Windows Requester
DOCUMENT ID#: FYI.A.2030
DATE: 02JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 2001 with WBTRCALL Btrieve requester
ISSUE/PROBLEM
With the Windows Btrieve requester, WBTRCALL.DLL v5.17a (11712 6-28-91), a Status 2001 (insufficient memory) will be returned on any Btrieve call issued after a WBTRVSTOP call.
The 2001 will occur only during the duration of a single task or program. This means that if an application that makes Btrieve calls is running and this application, OR ANY OTHER application calls WBTRVSTOP, a 2001 will be returned on all successive Btrieve calls in all Btrieve applications that are running, UNTIL the applications are restarted.
SOLUTION
This problem is fixed in the 6.0 version of WBTRCALL.DLL shipping with NetWare SQL 3.0. When using the 6.0 version of WBTRCALL.DLL, the file WBTRVRES.DLL is also needed. It is required for use when using version 6.0 of WBTRCALL.
FYI: Visual Basic and Status 2103 or 20
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Visual Basic and Status 2103 or 20
DOCUMENT ID#: FYI.A.2029
DATE: 02JUL92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 20 and Status 2103 with Visual Basic
ISSUE/PROBLEM
When using the Btrieve or NetWare SQL requesters in a program in the Visual Basic interactive environment, status 20 (Btrieve not loaded) or 2103 (NetWare SQL not active) may be returned on calls to Btrieve or NetWare SQL (respectively).
SOLUTION
A workaround for this problem with Visual Basic is to compile the application and run it outside of the Visual Basic environment. The status 20 or 2103 will not be returned when running outside of the environment.
FYI: IPXODI Options Affect SPX and Diagnostics
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPXODI Options Affect SPX and Diagnostics
DOCUMENT ID#: FYI.A.1665
DATE: 02JUL92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What does a return code of 0xFE (254) from BeginDiagnostics() or 0 from SPXInitialize() mean?
SOLUTION
IPXODI allows certain options to be specified when it is loaded that affect what protocol support is installed. Specifically, the D option tells IPXODI NOT to load diagnostics support.
The A option tells IPXODI not to load diagnostics support or SPX support. If diagnostics support is not loaded, BeginDiagnostics() will return 0xFE (254). If SPX support is not loaded, SPXInitialize() will return a 0.
FYI: Setting the Machine Name
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Setting the Machine Name
DOCUMENT ID#: FYI.A.1664
DATE: 01JUL92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The machine name can be obtained through DOS interrupt 21h, service 5Eh, function 0. How can an application set the machine name?
SOLUTION
The DOS GetMachineName function is available to workstations running in most network environments and is commonly used to give a NETBIOS client a unique name. There is an undocumented service, 01h to this same function that allows a calling application to set the machine name. Register setup is as follows:
DOS does not pad the end of the string with blanks, so the application is responsible for maintaining the name correctly. The name should always be 16 characters long including the NULL terminator. Under DOS 5.0, at least, the CX register does not seem to really make a difference.
Another way, under NetWare, to set the machine name is in the login script, the command as shown below:
NAME="UNIQUE NAME"
will set the machine name to "UNIQUE NAME". Login script variables can go inside the quotes to help produce a more unique name:
NAME="%P_STATION"
will set the machine name to the physical node address of the workstation, with leading zeros.
FYI: Using Brequest in Multiple Desqview Sessions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using Brequest in Multiple Desqview Sessions
DOCUMENT ID#: FYI.A.1757
DATE: 30JUN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Btrieve Status 79 - Programming Error
ISSUE/PROBLEM
With Desqview version 2.40, multiple sessions running Btrieve applications using the NetWare Btrieve requester (Brequest.exe) could cause a status 79 - "Programming Error" to be returned.
SOLUTION
Desqview version 2.40 has a configuration option called "Network Buffers". Increasing this parameter resolves the problem.
From a Desqview window, run the program DVSETUP. Select the ADVANCED setup procedure. From the advanced menu, select the Network option. One of the network options is called Network Buffers. The default value for this parameter is 8. Quarterdeck, which is the company that makes Desqview, suggested raising this value to 16, which resolved the Brequest problem.
FYI: Logging Into a Named Database With XQLI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Logging Into a Named Database With XQLI
DOCUMENT ID#: FYI.A.1043
DATE: 30JUN92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Using /D load parameter
ISSUE/PROBLEM
How can a named database be used when logging into XQLI?
SOLUTION
In order to use a named database when logging into NetWare SQL with the XQLI utility, the /D load parameter can be used. For example, to use XQLI to access the named database "test", enter the following command:
XQLI /D:@test
In addition, a named database can be configured in the OPTIONS menu once XQLI is loaded. After selecting OPTIONS, select LOGIN, and then DICTIONARY and specify @databasename as the dictionary path.
Finally, the XQLIDD environment variable can also be used to specify a named database. Simply set it to @databasename before invoking XQLI.
FYI: NetWare Btrieve and 3-Com 3C501 Ethernet Cards
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Btrieve and 3-Com 3C501 Ethernet Cards
DOCUMENT ID#: FYI.A.1042
DATE: 30JUN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Btrieve applications hang
ISSUE/PROBLEM
The user reported he was using a clone 386/20 as a NetWare v3.11 server, and then upgraded his server to be a NetWare Certified ALR 486/33 server.
As a result, workstations with the older and slower 3C501 cards could no longer run their Btrieve applcations. They appeared to hang very frequently; users were continually having to reboot the workstations with these cards.
Prior to upgrading the server hardware to the faster processor, everything ran fine.
SOLUTION
The 3C501 card is very slow and cannot handle the increased output from a faster server. Upgrading the older workstations that were running 3C501 cards to more recent ethernet cards resolved the problem.
For more information, refer to FYI.P.5862 in the NSE.
FYI: Status 100 with Btrieve 6.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 100 with Btrieve 6.0
DOCUMENT ID#: FYI.A.2424
DATE: 29JUN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Status 100 "No Cache Buffers Available" when using the Btrieve NLM v6.0 is solved by increasing the Cache Allocation parameter under the Btrieve Configuration option of the NetWare SQL Setup Utility (NDBSETUP.NLM).
The NetWare SQL Installation and Operation manual, page 2-34, states:
"To achieve best performance, allocate a cache size equal to the sum of the sizes of the files you are using. You cannot improve performance, and may waste memory, by specifying a value higher than you need."
If a server has 2.0 GB worth of Btrieve data files, and only 64 MB of memory, then this formula is unrealistic. In this case, what formula should be used?
SOLUTION
The purpose of the above statement is to let users know that if they allocate a cache size more than the sum of the file sizes, this extra cache allocation will be useless. The more memory given to Btrieve, the better Btrieve will perform, up until the cache size equals the sum of the file sizes. However, if more memory is given to Btrieve, this memory is taken away from NetWare.
If a server is ONLY running a Btrieve application, increasing the Cache Allocation will not generally interfere with NetWare's memory, and the performance of Btrieve should increase. However, if the server is running a Btrieve application in addition to other applications that need NetWare's memory, then increasing the Cache Allocation parameter for the Btrieve NLM v6.0 may cause a decrease in performance for the non-Btrieve applications.
There is no set formula for increasing or decreasing the Cache Allocation parameter. In the case above, the best advice is to gradually increment the Cache Allocation by 1 MB at a time, and monitor the effects. If there is less memory on the server, then use smaller increments.
FYI: OS/2 2.0 and Btrieve for OS/2 (local)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2 2.0 and Btrieve for OS/2 (local)
DOCUMENT ID#: FYI.A.2423
DATE: 29JUN92
PRODUCT: Btrieve OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: FYI.A.2420
SYMPTOM: NA
ISSUE/PROBLEM
This FYI supersedes FYI.A.2420.
Does the local Btrieve for OS/2 v5.10 BTRCALLS.DLL work under OS/2 v2.0?
SOLUTION
Yes, however, OS2 v2.0 developers writing a 32-bit application or DLL to call the 16-bit BTRCALLS.DLL, will have to modify the interface slightly in order to alias the 32-bit pointer and integer parameters. Macros are provided by the C/2 compiler to do this. Calling the 16-bit Btrieve for OS/2 v5.10 DLL is a simple matter of redoing the BTRCALL prototype.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare SQL 3.0's Macintosh Disk
DOCUMENT ID#: FYI.A.1119
DATE: 29JUN92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: Unable to install Macintosh Disk
ISSUE/PROBLEM
The Macintosh disk that was shipped with NetWare SQL 3.0 is formatted as high density. Macintosh/DAL users that do not have high density disk drives at their site will have a problem installing the files on this disk: DALCHECK and README.DAL.
SOLUTION
Walnut Creek has made the contents of the disk available on the Applelink bulletin board (similar to NetWire, but for Mac users), as well as NetWire.
Applelink is an ICON driven bulletin board. To find the files uploaded by Novell (Walnut Creek), first select 'Third Parties', then 'Novell', then open the folder for NetWare for Macintosh. Double click on DAL.PKG and it will automatically be decompressed for you.
For those with access to NetWire, DAL.SIT is in data library 8. This file is compressed with a utility called Stuffit (for Macs). It must be downloaded to a Mac or to a file server that has Macintosh support. If you try to download it to a DOS workstation, the file will be corrupted.
The reference number assigned to this file is PTF-W-029, for those customers who do not have access to Applelink or NetWire. These customers can call 800-NETWARE and request these files to be mailed on diskette.
FYI: Using the /W Parameter in Xtrieve PLUS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using the /W Parameter in Xtrieve PLUS
DOCUMENT ID#: FYI.A.1864
DATE: 26JUN92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.11
SUPERSEDES: NA
SYMPTOM: Using the /W Parameter in Xtrieve PLUS
ISSUE/PROBLEM
If the message "Not enough fields defined for View" appears when trying to use Xtrieve to put fields in a view, it may be that Xtrieve's /w parameter is not set high enough.
SOLUTION
Xtrieve's /w should be long enough to encompass the longest width of the view. This width is determined by adding up the lengths required to display the data for each field in the view.
The length required by each field is determined by either: the length of the field OR the length of the heading for the field. The larger of these should be used to calculate the total width of the view.
Consequently, if you had 5, 10 byte string fields but the name of the fields were:
FIELD ONE AAAAAAAAA
FIELD TWO AAAAAAAAA
FIELD THREE AAAAAAA
FIELD FOUR AAAAAAAA
FIELD FIVE AAAAAAAA
The /w would have to be 5 (number of fields) * 20 (length of the heading). The length of the heading would be used because it is actually wider than the field is.
FYI: Last Login Date and Time in MISC_LOGIN_INFO and LOGIN_CONTROL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Last Login Date and Time in MISC_LOGIN_INFO and LOGIN_CONTROL
DOCUMENT ID#: FYI.A.1323
DATE: 26JUN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Incorrect Last Login Date And Time in MISC_LOGIN_INFO
ISSUE/PROBLEM
The MISC_LOGIN_INFO bindery object property was being used to check for the object's last login date and time. Upon investigation, it was discovered that the information returned by this property did not coincide with the last login date and time returned by SYSCON's Other Information screen. The MISC_LOGIN_INFO property contained a time LATER than SYSCON's information.
SOLUTION
After further study, it was discovered that SYSCON was retrieving its information from a different bindery object property known as the LOGIN_CONTROL property. The MISC_LOGIN_INFO should not be used.
FYI: Retrieving a NetWare Volume Serial Number
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Retrieving a NetWare Volume Serial Number
DOCUMENT ID#: FYI.A.1322
DATE: 26JUN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: Retrieving a NetWare Volume Serial Number
ISSUE/PROBLEM
Beginning with DOS v4.x, volume serial numbers were introduced. This information could usually be retrieved from the DOS BOOT sector. Under NetWare volumes, there is no DOS BOOT sector.
SOLUTION
An UNDOCUMENTED DOS function can be used: INT 21h, function 69h. The following code is an example of retrieving data from drive I.
FYI: Error When Using Turbo Pascal Interface for NWSQL 3.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error When Using Turbo Pascal Interface for NWSQL 3.0
The Turbo Pascal interface included with NetWare SQL 3.0 allows the developer to specify whether the application will be using SQL-Level Functions, Primitive functions, or both. This is done by commenting out one of the following lines, which appear at the top of the interface file NWSQLINT.PAS:
{$DEFINE NWSQL_RELATIONAL_PRIMITIVES}
{$DEFINE NWSQL_SQL_FUNCTIONS}
If the second $DEFINE line (for the SQL-level functions) is commented out, indicating that only the primitive calls will be included, the interface can not be compiled into a Turbo Pascal Unit. The error returned by the compiler is 59 (undefined forward).
SOLUTION
Two of the prototypes defined in the miscellaneous section of this interface need to be moved into the SQL-Level prototype section. These are:
PROCEDURE SQLLevelCall;
FUNCTION SQLManagerLoaded : BOOLEAN;
FYI: The Requester WXQLCALL.DLL Can Interface With XQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The Requester WXQLCALL.DLL Can Interface With XQL
DOCUMENT ID#: FYI.A.1934
DATE: 25JUN92
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11a
SUPERSEDES: NA
SYMPTOM: The Requester WXQLCALL.DLL can interface with XQL
ISSUE/PROBLEM
The requester version of the WXQLCALL.DLL can interface not only with NSREQ.EXE or NSREQS.EXE (to issue requests to the NetWare SQL engine at the server), but also with XQL.EXE, XQLO.EXE, XQLP.EXE or XQLPO.EXE.
This is enabled by an optional patch (patch #38) in the patches for XQL/NetWare SQL v2.11. This patch is for XQL[P[O]].EXE, not for WXQLCALL.DLL.
SOLUTION
NA
FYI: Status 80 May Not Be Returned If Two Users Do UPDATE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 80 May Not Be Returned If Two Users Do UPDATE
DOCUMENT ID#: FYI.A.1933
DATE: 25JUN92
PRODUCT: NetWare SQL
PRODUCT VERSION: ANY
SUPERSEDES: NA
SYMPTOM: Status 80 May Not Be Returned If Two Users Do UPDATE
ISSUE/PROBLEM
If two users read a record and then update the record one after the other, the second user may not get a status 80 depending on how the updates are being done.
Compiling and executing an UPDATE statement causes NetWare SQL, any version, to read the record and then update it. Because the read is being done after the first user updated the record, status 80 is not returned.
If the two users read the record and then tried to update simultaneously, it is possible that status 80 would be returned due to the timing of the updates.
SOLUTION
To avoid potentially overwriting another users updates, the application can be written to either:
Fetch and lock the records to be updated before issuing the UPDATE statement
OR
Fetch the records to be updated, and then issue the xUpdate primitive to perform the update. This primitive does do conflict checking, so a status 80 will be returned when two users try to update the same set of records.
FYI: BUTIL v4.11 Reports Unknown Key Type
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BUTIL v4.11 Reports Unknown Key Type
DOCUMENT ID#: FYI.A.1932
DATE: 25JUN92
PRODUCT: Btrieve DOS 3.1
PRODUCT VERSION: 4.11
SUPERSEDES: NA
SYMPTOM: Reporting unknow key type
ISSUE/PROBLEM
Autoincrement keys were introduced in Btrieve v5.00. Accordingly, if a version previous to 5.x version of BUTIL is used to do a STAT of a Btrieve file containing an autoincrement key, BUTIL will report the key as an 'Unknown' key type.
SOLUTION
NA
FYI: Btrieve STAT Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve STAT Documentation Error
DOCUMENT ID#: FYI.A.1931
DATE: 25JUN92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Btrieve STAT Documentation Error
ISSUE/PROBLEM
In the documentation for the Btrieve STAT operation, the Btrieve Programmer's Manual (page 4-97), April 1990 edition, states that the fourth value returned in a Key Specification block is '# of keys'. This is incorrect. The value that is returned is 'the # of unique values for the key segment'.
SOLUTION
NA
FYI: Problem With GetPhysicalRecordLocksByFile()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem With GetPhysicalRecordLocksByFile()
DOCUMENT ID#: FYI.A.3851
DATE: 23JUN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Problem with GetPhysicalRecordLocksByFile()
ISSUE/PROBLEM
GetPhysicalRecordLocksByFile() returns SUCCESSFUL return code, however, the structure (PHYS_REC_LOCK) contains all zeroes.
SOLUTION
Make sure to initialize the lastRecord and lastTask parameters to -1 when making this call for the first time. The docmentation states that these parameters should be 0 but that is incorrect.
FYI: Btrieve Preimaging with 6.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Preimaging with 6.0
DOCUMENT ID#: FYI.A.2218
DATE: 23JUN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: Btrieve Preimaging with 6.0
ISSUE/PROBLEM
Does Btrieve 6.0 use preimaging for file integrity when working with files that were created with an earlier version of Btrieve?
SOLUTION
Btrieve 6.0 will create a preimage file when writing to a Btrieve file that was created with an earlier version of Btrieve. However, the format of the preimage file that Btrieve 6.0 creates is different from the format of a preimage file created by earlier versions of Btrieve.
Subsequently, earlier versions of Btrieve will not be able to accurately interpret a preimage file created by Btrieve 6.0, and Btrieve 6.0 will not be able to accurately interpret a preimage file created with an earlier version of Btrieve. Therefore, if a user needs to interchange the Btrieve engine that will be accessing pre 6.0 Btrieve files, all preimage files must be cleaned up prior to swapping engines. The procedure for doing this is as follows:
1. Check to see if a .PRE file exists for any Btrieve files
2. If a .PRE file exists, then
a) Open the Btrieve file in Exclusive mode.
b) Perform a Get First operation.
c) Perform an Update operation (this will not change the record).
d) Close the Btrieve file. (this should cause the .PRE file to get deleted)
3. Switch engines
Note: Remember that a Btrieve file can not be accessed simultaneously with a client Btrieve engine and NetWare Btrieve (on the server) at the same time. The above procedure should be used if it is necessary to swap between a client engine and a server engine.
FYI: Btrieve 6.0 Record Length
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 6.0 Record Length
DOCUMENT ID#: FYI.A.2217
DATE: 23JUN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: Maximum record length
ISSUE/PROBLEM
What is the maximum record length for a Btrieve file created with Btrieve 6.0?
SOLUTION
With the new Btrieve 6.0 file format, the maximum fixed record length has changed to 4088 (previous max length was 4090). The additional 2 bytes are used for a record usage count. In addition, when defining a KEY ONLY file, the maximum key length has changed to 253 (was previously 255). Again, the additional 2 bytes are being used for a record usage count.
FYI: ReturnSpaceRestrictionForDirectory() Abends Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ReturnSpaceRestrictionForDirectory() Abends Server
DOCUMENT ID#: FYI.A.3369
DATE: 22JUN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 200c
SUPERSEDES: NA
SYMPTOM: Server Abend
ISSUE/PROBLEM
ReturnSpaceRestrictionForDirectory() when used against a remote server always ignores the numberOfStructuresToReturn field. This can cause it to return up to 512 bytes of data.
SOLUTION
As a workaround, set aside a buffer of at least 512 bytes for the answerBuffer returned by the call.
FYI: NetBIOS Send Fails With Multiple Sessions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetBIOS Send Fails With Multiple Sessions
DOCUMENT ID#: FYI.A.3368
DATE: 18JUN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 100
SUPERSEDES: NA
SYMPTOM: Netbios Send Timeouts (Completion Code 5 on the NCB)
ISSUE/PROBLEM
The 3.02c version of NetBIOS, and all versions after 2.15a, do not handle handshaking between multiple NetBIOS sessions on one machine. Multiple sessions' sends are not queued when sent. This causes the receiving machine to run out of receive buffers, which causes NetBIOS to generate the status 5 (send timeout failure). This symptom is more easily reproduced on token ring than Ethernet. However, it has been reported on both topologies.
SOLUTION
No workaround is available at this time, besides utilizing fewer NetBIOS sessions on one machine.
FYI: ScanBinderyObjectTrusteePaths() Fails On 3.x Servers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanBinderyObjectTrusteePaths() Fails On 3.x Servers
DOCUMENT ID#: FYI.A.3367
DATE: 18JUN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 120
SUPERSEDES: NA
SYMPTOM: Incorrect trustee rights on 3.x servers.
ISSUE/PROBLEM
ScanBinderyObjectTrusteePaths() returns incorrect trustee rights information for 3.x servers.
SOLUTION
The only workaround at this time is to use ScanBinderyObjectTrusteePaths() to obtain all of the paths to which an object has trustee assignments. The paths can then be passed to ScanEntryForTrustees() to obtain the correct trustee rights.
FYI: Using GetEqual on a Corrupted File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using GetEqual on a Corrupted File
DOCUMENT ID#: FYI.A.1863
DATE: 18JUN92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Get Equal returning incorrect value.
ISSUE/PROBLEM
Customer had a file that had two keys: 0 and 1. Key 0 was never used to traverse the file. A client began to report that the wrong data was being displayed on their screens. The application was doing a GET EQUAL on key 1 where the key value=1234. However, when the application returned the data, the key value was 1235 and the data returned to the application was incorrect. The status returned was 0 - "successful".
Upon investigation of the file it was found to be corrupt. In fact, traversing key 0 would result in status 2 (I/O Error).
Why would Btrieve return a status of 0 on an operation that should have failed? After all, a Get Equal on key 1, value=1234 should not have returned a value of 1235.
SOLUTION
When a GET EQUAL or other GET call is made, the index is traversed until the specified key value is found. Then, the record on the data page is found according to the address stored with the index. The record is put into the data buffer, and then the key value is extracted from the appropriate bytes of this record and placed in the key buffer. Therefore, the index page had not been corrupted and still contained the requested value, but the index page's pointer back to the data page could have been corrupt, making it return the wrong record.
The other alternative is that the record had become corrupt, possibly an update didn't complete, and when the key was extracted from the record, it contained a different value than the index page.
FYI: Preallocation Limits
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Preallocation Limits
DOCUMENT ID#: FYI.A.1862
DATE: 18JUN92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What is the maximum number of pages that can be preallocated when creating a Btrieve file?
SOLUTION
Since the preallocation value for the Btrieve create operation is only 2 bytes, 64K is the limit and hence 65535 is the maximum number of pages that can be preallocated for a Btrieve file.
FYI: IPX Can Not Initialize From Windows Application
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPX Cannot Initialize From Windows Application
DOCUMENT ID#: FYI.A.2668
DATE: 17JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: IPX Cannot Initialize From Windows Application
ISSUE/PROBLEM
Here is a run down of the problems that may be encountered when trying to execute a Windows communication application for Windows 3.0 and Windows 3.1 and C-interface for Windows 1.3 SDK:
Any Mode:
1. Must be using IPX version 3.10 or better.
2. The NWIPXSPX.DLL must be the one that comes with the C-interface for Windows 1.3 SDK.
Enhanced Mode:
1. Versions of VNETWARE.386, NETWARE.DRV, and VIPX.386 must be the ones that come with Windows 3.1.
Standard Mode:
1. Must use TBMI.COM for Windows 3.0 and TBMI2.COM for Windows 3.1.
■ For Windows 3.0 the TBMI should be dated 7-10-91. The TBMI.COM dated 06-17-91 may cause problems with DOS boxes.
■ For Windows 3.1 use the TBMI2.COM comes with C-Interface for Windows 1.3 SDK.
This should indicate that both Windows 3.0 and Windows 3.1 will be able to run a communications application in enhanced mode with the same latest VIPX.386 and NWIPXSPX.DLL, along with the C-Interface for Windows 1.3 SDK.
SOLUTION
NA
FYI: Is TMBI/TBMI2 loaded?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Is TMBI/TBMI2 loaded?
DOCUMENT ID#: FYI.A.2667
DATE: 17JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.x
SUPERSEDES: NA
SYMPTOM: Is TMBI/TBMI2 loaded?
ISSUE/PROBLEM
Determining if TBMI/TBMI2 is loaded may be carried out by using INT 2Fh with 7A10h in AX. The version will be returned in DX (Major version in DH, minor version in DL). The values will be zero if not installed.
Using IPX/SPXInitialize may serve the same purpose to some degree indicating that IPX could not be initialized (error 240 or 0xF0).
If the INT 2Fh method will be used, attention must be paid to the fact that TBMI/TBMI2 are TSRs and therefore run in REAL mode. Running a Windows application which needs to check on TBMI will need to use DPMI to simulate the real mode interrupt.
SOLUTION
NA
FYI: Documentation Incorrect for ClearFileSet()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Documentation Incorrect for ClearFileSet()
DOCUMENT ID#: FYI.A.1663
DATE: 17JUN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: Documentation Incorrect for ClearFileSet()
ISSUE/PROBLEM
The documentation for ClearFileSet() and ClearFile() does not mention that these functions close the files being cleared. All files in the set will be closed when using ClearFileSet(). The same is true for ClearFile(), except only the specified file will be closed.
SOLUTION
Use ReleaseFileSet() or ReleaseFile() to release the lock(s). The documentation for C Interface-DOS v1.2 is not missing this information.
FYI: Invalid Line Number Reported from wherey()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Invalid Line Number Reported from wherey()
DOCUMENT ID#: FYI.A.1662
DATE: 17JUN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 3.11a
SUPERSEDES: NA
SYMPTOM: Invalid line number reported from wherey()
ISSUE/PROBLEM
The function, wherey(), if called immediately following a printf() on the last line of the screen that ended with a carriage return ('\n'), will return 25, which is an invalid screen position. Calling gotoxy() with an invalid screen position causes an abend:
PositionOutputCursor called with invalid row
SOLUTION
The problem only seems to be when there are no characters following the '\n' AND the printf() was on the last line of the screen (line 24).
FYI: Btrieve and AST Premium Notebook
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve and AST Premium Notebook
DOCUMENT ID#: FYI.A.4202
DATE: 16JUN92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Ctrl-Alt-Del does not remove Btrieve TSR from memory
ISSUE/PROBLEM
If Btrieve version 5.10a is loaded on an AST Premium Exec SX/20 using BIOS 1.15, and then this machine is warm booted (Ctrl-Alt-Del), trying to reload Btrieve will fail with the message:
Btrieve is already loaded
This problem will not occur if Btrieve is unloaded with BUTIL -STOP or an application, or if the machine is hard booted.
SOLUTION
This is not a Btrieve problem. This is caused by the BIOS v1.15.
To increase the speed for rebooting process, Ctrl-Alt-Del does not remove everything from memory. This functionality does not exist with the earlier BIOS.
FYI: Undocumented Structures for FEGetDirectoryEntry()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Undocumented Structures for FEGetDirectoryEntry()
DOCUMENT ID#: FYI.A.3850
DATE: 16JUN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: Undocumented Structures for FEGetDirectoryEntry()
ISSUE/PROBLEM
FEGetDirectoryEntry() returns pointers to the directory entry structures for non-DOS and DOS directory entries. However, these structures are not documented.
SOLUTION
These are internal structures and are not available for the developers.
FYI: Btrieve VAP Abend With ARCnet Card
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve VAP Abend With ARCnet Card
DOCUMENT ID#: FYI.A.1041
DATE: 16JUN92
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Server will abend shortly after Btrieve VAP loads
ISSUE/PROBLEM
There is a particular ARCnet card that is not compatible with the Btrieve VAP version 5.x. It is the Tiara Lan Card/A-PC16 ARCnet card. When a server containing this card is brought up, and the Btrieve VAP has been installed, the VAP will load, but the server will subsequently abend with the error "General Protection Violation RC=FE". This usually happens within 1 to 5 minutes after the Btrieve VAP loads. This has been reported to occur under NetWare ELS Level II v2.15c and NetWare v2.2.
SOLUTION
Users calling in with this problem should be referred to Tiara customer service at 1-800-NET-IARA (800-638-4272) and request RMA and swap for Tiara's LAN card/A*AT. Upon receipt of the A*AT board, NetWare should be reconfigured utilizing Novell's Rxnet driver with the following settings:
IRQ=2, I/O=300, buffer-cc00:0h
FYI: NetWare J's Btrieve NLM Releases
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare J's Btrieve NLM Releases
DOCUMENT ID#: FYI.A.1040
DATE: 16JUN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.16
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There have been two offical releases of Btrieve NLM v5.16 for NetWare J. This may cause some confusion since they have different sizes, but the same version number. The different size is attributable to the fact that applying the patches will cause the file size to increase.
SOLUTION
The released sizes are:
FILE VERSION SIZE DATE COMMENT
BTRIEVE.NLM 5.16 68660 06-17-91 Original Release
BTRIEVE.NLM 5.16a 69172 10-28-91 with patches 1-14 applied
If you apply all of the currently available patches (through fix 32) to the original Btrieve NLM for NetWare J v5.16 the file will be:
BTRIEVE.NLM 5.16 70708 06-04-92
The BREQUEST.EXE v5.17 has not changed since the original release of the BTRIEVE.NLM v5.16 nor are there any patches currently for it. It is:
BREQUEST.EXE 5.17 19704 06-03-91
FYI: Using the MicroSoft 7.0 C/C++ Compiler
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using the MicroSoft 7.0 C/C++ Compiler
DOCUMENT ID#: FYI.A.2944
DATE: 12JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: v1.3
SUPERSEDES: NA
SYMPTOM: Mapping must point to appropriate compiler
ISSUE/PROBLEM
When compiling an application on NetWare, using the latest MicroSoft 7.0 C/C++ compiler, search mappings must be setup to point to the appropriate compiler files.
For example: MAP ROOT INS S16:=SERVER\VOLUME:C7\BIN
Without the ROOT keyword S16: will be interpreted by the NMAKE utility as S16:\ The ROOT keyword makes the directory act as the root, so S16: is interpreted as the correct directory.
SOLUTION
NA
FYI: Drivers Needed for Windows Development
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Drivers Needed for Windows Development
DOCUMENT ID#: FYI.A.2666
DATE: 12JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: Drivers needed for Windows 3.1
ISSUE/PROBLEM
What drivers are needed for developing and running Windows applications for Windows 3.1?
Here is the current picture:
1. Use the VNETWARE.386, NETWARE.DRV, and VIPX.386, that come with Windows 3.1.
2. Use the DLLs that come with the C-interface for Windows 1.3 SDK (NOT the drivers mentioned above in the '\DRVRS' directory).
3. If using Standard mode, use the TBMI2.COM that comes with the C-interface for Windows 1.3 SDK.
As an aside: The VIPX.386 and the NWIPXSPX.DLL are compatible for use on Windows 3.0.
SOLUTION
NA
FYI: Purpose of WBTRVRES.DLL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Purpose of WBTRVRES.DLL
DOCUMENT ID#: FYI.A.2513
DATE: 12JUN92
PRODUCT: Btrieve Requester for Windows
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What is the purpose of WBTRVRES.DLL?
SOLUTION
WBTRVRES.DLL is a resource DLL for the Btrieve requester for Windows v6.0. All the message strings that are displayed when using the WBTRCALL.DLL requester have been moved to WBTRVRES.DLL.
The intent is to make it easier to internationalize the product. To support French, for example, instead of having to overhaul WBTRCALL.DLL completely, a WBTRVRES.DLL which has the message strings in French can be used instead of the originally shipped WBTRVRES.DLL.
FYI: Windows, TBMI, VIPX.386 and DOS Applications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows, TBMI, VIPX.386 and DOS Applications
DOCUMENT ID#: FYI.A.2422
DATE: 12JUN92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Within Windows, running Brequest and a DOS application in a DOS box requires different setups depending on which version of Windows is used and whether or not Windows is run in standard mode or enhanced mode.
SOLUTION
If Windows v3.0 is run in standard mode, then load TBMI.COM before getting into Windows.
In the DOS box, load TASKID.COM, BREQUEST.EXE, and the DOS application (in that order). TBMI.COM and TASKID.COM are currently available on CompuServe in NOVLIB, data libraries 1 and/or 5. The name of the file to download is WINUP6.ZIP.
■ If Windows v3.1 is run in standard mode, then load TBMI2.COM before getting into Windows. In the DOS box, load BREQUEST.EXE and then the DOS application. TBMI2.COM comes with Windows v3.1.
■ If Windows v3.0 or Windows v3.1 is run in enhanced mode, then VIPX.386 should be used. This requires modifying the SYSTEM.INI file under the [386Enh] header, and adding the following line:
network=VIPX.386
After getting into Windows, load BREQUEST.EXE in the DOS box, and then load the DOS application. The VIPX.386 included with Windows 3.1 or in the WINUP6.ZIP file on Compuserve is the version that should be used; do not use the version included with Windows 3.0.
If a Windows application (not a DOS application) requires BREQUEST.EXE, then BREQUEST.EXE should be loaded before getting into Windows. There is another FYI (FYI.A.2022) that explains what to do if a Windows application and a DOS application need to be running at the same time, and both of them require BREQUEST.EXE.
FYI: Watcom 9.0 Linker Error 1100
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watcom 9.0 Linker Error 1100
DOCUMENT ID#: FYI.A.3366
DATE: 11JUN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0c
SUPERSEDES: NA
SYMPTOM: Error 1100 when redefining far and near pointers
ISSUE/PROBLEM
When developing in the flat memory model, a developer may want to redefine the far and near pointers. This could be accomplished successfully with the Watcom 7.0 compiler. However, the 9.0 compiler would not allow this; instead it generated the message "Error! E1100: Definition of macro 'far' not identical to previous definition".
SOLUTION
Use the following preprocessor commands to determine if the definition has been assigned, and simply undefine the value before attempting to assign it a new value.
#ifdef far
#undef far
#define far
#endif
The above redefines "far" to have no effect in the compiled code.
FYI: ReturnSpaceRestrictionForDirectory() Problem
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ReturnSpaceRestrictionForDirectory() Problem
DOCUMENT ID#: FYI.A.3365
DATE: 11JUN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0c
SUPERSEDES: NA
SYMPTOM: -1 Returned For Valid Directory
ISSUE/PROBLEM
ReturnSpaceRestrictionForDirectory() is returning a -1 when used against a directory which is a subdirectory of a parent with directory retrictions enforced. The call should return the amount of the restriction remaining for the directory.
SOLUTION
The only work-around at this time is to scan all levels of a directory tree when searching for restrictions.
FYI: Btrieve Files Left Open; Network Backups Fail
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Files Left Open; Network Backups Fail
DOCUMENT ID#: FYI.A.1039
DATE: 10JUN92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: BCONSOLE shows files open, but no associated User ID
ISSUE/PROBLEM
Under NetWare 3.x and the Btrieve NLM v5.x, workstations that have been logged off of the network due to time restrictions put into place by the system administrator may have left Btrieve files open to the NLM. This can only occur if, at the time when they are automatically logged off, they were in an application with Btrieve files opened on the server.
If such a situation occurs, the BCONSOLE utility will show the files as open, but with no associated connection ID. As long as there is power to the network card and Brequest is still loaded on that workstation, the SPX session is still valid and those Btrieve files will remain open.
A situation may arise in an application where one or more files are opened multiple times (multiple handles allocated for each file) and then each handle is not properly closed by the application. This will keep those files which did not have all its handles cleared open to the Btrieve NLM until one of two things occur.
First, if the workstation performs a RESET operation from within the application or with the Btrieve utility, BUTIL.EXE, all file handles allocated to that connection will be cleared.
Alternatively, if the workstation is rebooted or powered off, the NetWare Watchdog will detect the connection as being lost and signal the Btrieve NLM to close all files opened to that lost connection ID.
Oftentimes this is the cause for network backups failing to gain access to Btrieve files. With Btrieve holding a file open, the backup utility is not allowed access to the file. This is assuming the Btrieve data file is properly flagged as RW (such as nonsharable read write) at the NetWare level.
SOLUTION
The only way to close files which the Btrieve NLM has open with no associated connection is to issue a BSTOP at the server console which will unload the BSPXCOM and BTRIEVE NLMs, or power off the workstations that had been running Btrieve applications.
FYI: Passing Parameters to Primitive Functions With Visual Basic
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Passing Parameters to Primitive Functions With Visual Basic
DOCUMENT ID#: FYI.A.2219
DATE: 09JUN92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: XQLP Function calls not working
ISSUE/PROBLEM
XQL Primitive function calls do not seem to work with Visual Basic.
SOLUTION
In order to pass Visual Basic strings 'by reference', the Function Declaration section needs to specify ByVal on any string parameter.
According to Microsoft Visual Basic Programmer's Guide (1991), page 382 "Calling DLL Routines with Specific Data Types" ...The routines in most DLLs expect standard C strings which end in a null character. If a DLL routine expects a C string as an argument, declare the argument as a string with the ByVal keyword. When used with a string argument, ByVal tells Visual Basic to pass the string as a C string ending with a null character.
What does this really mean?
The ByVal clause tells Visual Basic to pass the string address by value (not by reference), instead of just passing the string itself. So, if the XQLP documentation requires a string parameter to be passed by reference, the Visual Basic Function Declaration needs to specify ByVal.
If XQLP requires the string by value, the Visual Basic Function Declaration needs to specify "as String" or "as VarName$". Integers work just the opposite. If XQLP requires the integer by value, the Visual Basic Function Declaration needs to specify ByVal.
If XQLP requires the integer by reference, the Visual Basic Function Declaration needs to specify "as Integer" or "as VarName%".
If XQLP requires a structure, which is generally the databuffer, Visual Basic stores Type Defs in a different area than strings, and as such, it gets handled the same way as integers with respect to the ByVal clause in the Function Declaration.
FYI: Status 95 with Xircom
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 95 with Xircom
DOCUMENT ID#: FYI.A.2028
DATE: 09JUN92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 95
ISSUE/PROBLEM
When using a Xircom Pocket Arcnet Adapter, SPX sessions are lost which cause Brequest to return a status 95 - Session No Longer Valid.
SOLUTION
Use the latest ODI drivers from Xircom along with Novell's latest NetWare ODI shells.
■ If using a Xircom Arcnet Pocket Adapter II (PA202BT), the file needed from Xircom is PA2ODI.EXE. This file contains PA2MLID.COM v1.01.
■ If using an original Xircom Arcnet Pocket Adapter (PA02BT), obtain PA_ODI.EXE from Xircom. This file contains PAMLID.COM v1.10. The latest LSL.COM v1.21 is on Netwire in DOSUP5.ZIP and the latest IPXODI.COM v1.20 is in the NSD forum in ODIWIN.ZIP. On the workstation load: LSL.COM PA2MLID.COM or PAMLID.COM (depending on adapter), IPXODI
With these drivers, the status 95s will not occur.
Xircom can be contacted at 800-874-4428 and their bulletin board number is 818-878-7618.
FYI: INT 2F Calls Causes 2.2 Server Abend
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: INT 2F Calls Causes 2.2 Server Abend
DOCUMENT ID#: FYI.A.3364
DATE: 05JUN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: Abend: Invalid channel semaphore state on other process
ISSUE/PROBLEM
An INT 2F call with AX set to 0x804C issued from the nondedicated DOS box of a 2.2 server will cause the server to abend. If an application that normally runs on a DOS workstation causes a nondedicated server to abend, the developer may want to examine INT 2F calls.
SOLUTION
None is available at this time.
FYI: Btrieve Status 38 on NetWare Lite 1.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status 38 on NetWare Lite 1.0
DOCUMENT ID#: FYI.A.3363
DATE: 05JUN92
PRODUCT: Btrieve DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 38 on End Transaction Operation
ISSUE/PROBLEM
Btrieve returns a status 38 (Transaction Control File I/O Error) on an End Transaction operation on NetWare Lite. This only occurs if patch 79 has been applied to BTRIEVE.EXE 5.10a. This problem surfaces if two or more stations have Btrieve loaded and are utilizing transactions.
SOLUTION
Patch 116 now resolves the problem. All Btrieve patches should be reapplied.
FYI: Multiple Records With Same Values
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Multiple Records With Same Values
DOCUMENT ID#: FYI.A.2515
DATE: 05JUN92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.x
SUPERSEDES: NA
SYMPTOM: Multiple records displayed with the same data value.
ISSUE/PROBLEM
After inserting or editing records with Xtrieve PLUS, sometimes it appears as though all the records have the values from the first record in one or more fields. This problem is caused by reorganizing the file and adding fields that do not exist in the Btrieve physical file.
SOLUTION
Xtrieve expects the dictionary definition for a particular file to "match" the actual Btrieve data file. If the Btrieve file is defined with a record length of 100 bytes, then the lengths of all the fields defined in Xtrieve for this file (excluding a Note or Lvar field, if one is defined) should total 100.
Often times, users add new fields in the dictionary definition, but do not modify the Btrieve file. If there is not an exact match, Xtrieve will behave unpredictably. Reorganize the file and make sure the logical record size matches the physical size.
FYI: Lotus Configuration for the DataLens Driver
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lotus Configuration for the DataLens Driver
DOCUMENT ID#: FYI.A.2514
DATE: 05JUN92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: DataLens Driver not loaded.
ISSUE/PROBLEM
If a drive letter and path are used in the LOTUS.BCF file to specify the location of the datalens driver for NetWare SQL, and this location is not the Lotus directory or the current working directory, the driver will not be found.
SOLUTION
Leave the driver (LTSNWSQL.DLD or LTSNWSQL.DLL) in the Lotus directory or in the application's directory.
FYI: SubmitAccountCharge() Truncates Comment
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SubmitAccountCharge() Truncates Comment
DOCUMENT ID#: FYI.A.1661
DATE: 05JUN92
PRODUCT: NetWare C-Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The function call, SubmitAccountCharge(), is expecting the comment parameter to be a null terminated string, and thus truncates binary data when there is a 0 byte in the buffer.
SOLUTION
Change the source code to SubmitAccountCharge() (in SBTACTCH.C) to accept an eighth parameter (BYTE CommentLen) and remove the following two lines from within the function:
This change is not required for the standard accounting charges because they do not need to contain binary data. However, custom service types may require binary data in the comment field.
FYI: SPX Locks Up During Connection Establishment
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SPX Locks Up During Connection Establishment
DOCUMENT ID#: FYI.A.3156
DATE: 03JUN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Cannott establish SPX connection
ISSUE/PROBLEM
A customer-written SPX application was locking up on the server side (listen for connection), when a client initiated a new session (establish connection).
The problem was traced into IPX, and it was determined that it was locking up while trying to get a RIP for sending the acknowledgment. This problem was also occurring with the SPXCHAT program, and it only manifested itself if a router separated the client and server applications.
SOLUTION
The problem was eventually traced to a problem with the Kodiak Raven-8 LAN drivers in the workstations. By upgrading to the latest version, 3.20 (920303), everything started working.
It has not been determined if this latest version is either certified, or in the process of being certified. An older version (older than the one being used) was Novell certified.
FYI: GetDLLVersion() Returns Wrong Version
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetDLLVersion() Returns Wrong Version
DOCUMENT ID#: FYI.A.2665
DATE: 03JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: GetDLLVersion for C-Int. Win 1.3
SYMPTOM: Version String and Actual Version are Different.
ISSUE/PROBLEM
The GetDLLVersion() API has a BUG in the C-Interface for Windows 1.3. The version string contains the correct version information (1.3.1) but the API returns 1.3.0. This was verified by looking at the code.
NOTE: the version string is used by the VERSION.EXE.
SOLUTION
Since the source is provided with the 1.3 SDK, the API that GetDLLVersion() calls, ReturnVersion in the VIPXSPX.C module may be modified accordingly.
FYI: Problem With SERSERV.NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem With SERSERV.NLM
DOCUMENT ID#: FYI.A.4116
DATE: 02JUN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK C
SUPERSEDES: NA
SYMPTOM: Invalid Port Number
ISSUE/PROBLEM
When trying to debug an NLM using SERSERV.NLM configured for COM2, it will not load. An error message saying 'Invalid Port Number' will be returned.
SOLUTION
The current workaround is to use COM1 instead of COM2.
FYI: CloseSemaphore() in Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CloseSemaphore() in Windows
DOCUMENT ID#: FYI.A.3849
DATE: 02JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: Status 255
ISSUE/PROBLEM
CloseSemaphore() fails with the return code 255 (Invalid Semaphore Handle).
SOLUTION
This used to be a bug in the older versions of Netware.drv and vNetware.386. The drivers dated 5/1/90 returned this error. However, this problem has been fixed in the newer versions of Netware.drv and vNetware.386. The drivers that are shipped with Netware C Interface for Windows v1.2 or higher do not have this problem.
FYI: NWGetDrivePath() Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NWGetDrivePath() Documentation Error
DOCUMENT ID#: FYI.A.3848
DATE: 02JUN92
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: Documentation error NWGetDrivePath()
ISSUE/PROBLEM
In the Documentation of Netware OS/2 API Reference v1.3, there is an API documented as NWGetFilePath(). However, this API is not found in the header files.
SOLUTION
This is a documentation error. This API should be documented as NWGetDrivePath() and not as NWGetFilePath(). This is already fixed in the Version 2.0 of the Netware OS/2 API Reference.
FYI: GetDLLVersion() Not Supported
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetDLLVersion() Not Supported
DOCUMENT ID#: FYI.A.2664
DATE: 01JUN92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: GetDLLVersion not support for WSDK 1.3
ISSUE/PROBLEM
The GetDLLVersion function was not being exported or supported for the C-Interface for Windows SDK 1.3.
SOLUTION
Following is a section of code, basically taken from the DLL API. It may be placed directly into an application or an OBJ built out of it.
#include "windows.h" /* required for all Windows applications */
/* NetWare C-Interface for Windows SDK - Header section */
#include "nwmisc.h"
extern void ReturnVersion( BYTE far *majorVersion,
( *lpfnReturnVersion )( (BYTE far *)&majorVersion,
(BYTE far *)&minorVersion,
(BYTE far *)&revisionLevel,
(BYTE far *)&betaReleaseLevel );
if( lpfnReturnVersion == NULL ) {
majorVersion = 0;
minorVersion = 0;
revisionLevel = 0;
betaReleaseLevel = 0;
}
:
:
FYI: Btrieve 6.0 and Patch311.NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 6.0 and Patch311.NLM
DOCUMENT ID#: FYI.A.2216
DATE: 29MAY92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 6.00
SUPERSEDES: NA
SYMPTOM: Btrieve NLM fails to load
ISSUE/PROBLEM
BTRIEVE.NLM version 6.00 will attempt to autoload PATCH311.NLM. This patch file fixes certain problems with the CLIB.NLM that was released with NetWare v3.11.
PATCH311.NLM will only load if the released CLIB.NLM is running. If the system is running a newer CLIB.NLM, PATCH311.NLM is smart enough to recognize it and do nothing. Since BTRIEVE.NLM version 6.0 is autoloading PATCH311.NLM, it must be available in the SYS:\SYSTEM directory regardless of what CLIB.NLM the network is running.
If BTRIEVE.NLM cannot find PATCH311.NLM it will not load. When BTRIEVE.NLM attempts to autoload PATCH311.NLM, as long as it can find PATCH311.NLM, BTRIEVE.NLM will load regardless of whether PATCH311.NLM successfully loads or not (based on the CLIB.NLM that is loaded).
SOLUTION
When using BTRIEVE.NLM version 6.00 with NetWare version 3.11, make sure that PATCH311.NLM is in the SYS:\SYSTEM directory prior to trying to load BTRIEVE.NLM.
FYI: Xtrieve For OS/2 And the OS/2 LIBPATH
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve For OS/2 And the OS/2 LIBPATH
DOCUMENT ID#: FYI.A.2510
DATE: 06MAY92
PRODUCT: Xtrieve PLUS OS/2
PRODUCT VERSION: 4.01a
SUPERSEDES: NA
SYMPTOM: Segmentation Violation.
ISSUE/PROBLEM
If the OS/2 LIBPATH in the CONFIG.SYS is too long, a segmentation violation can be produced when selecting the Report Option from the Xtrieve Main Menu. The Xtrieve OS/2 buffer used to parse the LIBPATH variable can only handle approximately 120 bytes. If the LIBPATH variable is longer than this, it produces a segmentation violation.
SOLUTION
Specify a shorter LIBPATH. It may be helpful to set up two command files, one which sets a short LIBPATH specifying the directory containing the DLLs necessary for Xtrieve, and another which sets the LIBPATH as it is defined in the CONFIG.SYS file. Execute these command files before and after running Xtrieve to avoid the segmentation violation problem.
FYI: Brequest and Map Root Drives
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest and Map Root Drives
DOCUMENT ID#: FYI.A.2027
DATE: 05MAY92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Brequest version 5.x does not work properly with MAP ROOT drives. The reason for this is that Brequest converts filenames in the form of driveletter:path to server\vol:path. This is done without regard to the portion of the path that is hidden by the MAP ROOT command.
SOLUTION
Until Brequest is changed to accomodate MAP ROOT drives, the following workaround can be used. A 3rd party program called BSETPATH.EXE can be loaded after Brequest, and will convert all filenames to the true full path before passing it on to Brequest. It is unloaded when Brequest is unloaded. BSETPATH.EXE can be found along with documentation on Compuserve, in the NOVLIB forum, LIB 16 in the file BSETPA.ZIP.
FYI: When Preimage Files are Erased
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: When Preimage Files are Erased
DOCUMENT ID#: FYI.A.2026
DATE: 05MAY92
PRODUCT: Btrieve (Client)
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Since client versions of Btrieve have no way of knowing how many users have a particular file open, how does Btrieve determine when to erase the preimage file for a data file?
SOLUTION
Btrieve erases the preimage file for a data file when the last close to the file occurs. Btrieve determines the last close by trying to open the preimage file in exclusive mode. If the open succeeds, Btrieve knows that this is the only handle to the preimage file. Btrieve then erases the preimage file. If the exclusive open fails, there are other handles to the preimage file, so it is not erased.
FYI: Btrieve Status 80 - Conflict or Not?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status 80 - Conflict or Not?
DOCUMENT ID#: FYI.A.1926
DATE: 04MAY92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 80 - Conflict Error
ISSUE/PROBLEM
Using Btrieve for DOS 5.10a, if two users perform the following operations in the order shown, a status 80 is returned.
USER1 | USER2
|
OPEN FILE - STATUS 0 |
| OPEN FILE - STATUS 0
INSERT 'A111' - STATU |
GET EQUAL 'A111' - STATUS 0 |
| INSERT 'A222' - STATUS 0
| GET EQUAL 'A222' - STATUS 0
UPDATE 'A111' - STATUS 80 |
According to the structure of the Btrieve file, bytes 2 through 4 of the record are Key 0 (unique) and bytes 5 through 40 are Key 1 (duplicates allowed), and both keys are permanent. Also, the total record size is 600 bytes and the page size is 1024, so only one record fits on each data page.
Is this status 80 valid?
SOLUTION
Yes, the status 80 is a valid return code.
Normally, a status 80 is returned when a user reads a record, and before updating it, another user reads and updates the same record. In this case, the first user would be returned a status 80 on the attempted update. When using Btrieve for DOS, the conflict checking occurs at a page level as opposed to the record level, meaning that the second user did not actually have to read and update the SAME record, but any record on the same page as the first user's record.
Due to the way Btrieve handles duplicate keys, each record in this file has associated with it a set of pointers for Key 1; one pointer for the previous record with the same key value and one pointer for the next record with the same key value. In the above example, both users inserted records with the same value for Key 1 (all null bytes). Therefore, the second INSERT caused Btrieve to write to the duplicate pointers on both records. In this respect, USER2's INSERT caused USER1's record to be modified after USER1 retrieve it, and therefore, Btrieve returned status 80 when USER1 tried to UPDATE that record.
If, instead of INSERTing 'A111' and 'A222', the USERs would have inserted 'A1111' and 'A2222' (one extra '1' and one extra '2'), Key 1 on both records would have been different ('1' and '2'), the second insert would not have caused an update to the first record, and Btrieve would not have returned a status 80 to USER1's UPDATE.
Status 80 as a result of a record's duplicate pointers being changed will only occur with client Btrieve, not with NetWare Btrieve.
Although Btrieve programmers should be trapping for status 80s, we have found two workarounds for those that were not, and do not want to make major programming changes.
1) Create Key 1 as a supplemental index. Duplicate pointers are treated differently for supplemental indexes than they are for permanent indexes, so this problem would not arise.
2) Do the GET EQUAL operation with a 200 bias (Single NoWait lock). This will make Btrieve lock the logical record (record 1) while USER2 performs the INSERT. Even though Btrieve still adjusts the duplicate pointers, it 'knows' that record 1 was locked and its contents could not have changed, so when USER1 issues the UPDATE, it is successful.
FYI: Creating Data Dictionaries on Local Drives
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Creating Data Dictionaries on Local Drives
DOCUMENT ID#: FYI.A.1924
DATE: 04MAY92
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What happens when you try to create a data dictionary on a local drive, using the NetWare Btrieve requester and the NetWare SQL requester?
SOLUTION
When the NetWare Btrieve requester for DOS (BREQUEST.EXE) is loaded at a workstation, and a Btrieve CREATE operation is performed to create a file on a local drive, a status 20 (Record Manager Inactive) is returned. This is expected since NetWare Btrieve can not access a local drive, and the requester is looking for local Btrieve (BTRIEVE.EXE) in memory in order to service the request. Is this the same error returned when attempting to create a data dictionary (which consists of Btrieve files) on a local drive, using BREQUEST.EXE and the NetWare SQL requester (NSREQ.EXE)?
If NSREQ is loaded at the workstation and XQLI is used to create a data dictionary on a local drive, status 2108 (Device Not Assigned to File Server) is returned. This makes sense because the NetWare SQL engine running on the server is attempting an operation on a device that it has no control over.
If BREQUEST and XQL.EXE are loaded at the workstation, and XQLI is used to create a data dictionary on a local drive, status 285 (Error Opening System Table) is returned. This also makes sense, because NetWare Btrieve running on the server could not open the system tables for a device that it has no control over.
The importance here is to note that different error codes are returned based upon different configurations.
This testing was done on a NetWare 3.11 server using NetWare Btrieve 5.15, BREQUEST 5.16, NetWare SQL 2.11a, and NSREQ 2.11.
FYI: Lazy Writing in OS/2 HPFS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lazy Writing in OS/2 HPFS
DOCUMENT ID#: FYI.A.1925
DATE: 01MAY92
PRODUCT: Btrieve OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How does one disable Lazy Writing, under the OS/2 HPFS (High Performance File System)?
SOLUTION
The following lines should be inserted into the workstation's CONFIG.SYS file, BEFORE any DEVICE statements:
ifs=c:\os2\hpfs.ifs /c:1024 /autocheck:c /* c is the drive */
run = c:\os2\cache.exe /lazy:off
IFS stands for Installable File System.
FYI: Xtrieve PLUS Worksheets and Lotus 123
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve PLUS Worksheets and Lotus 123
DOCUMENT ID#: FYI.A.2509
DATE: 30APR92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Date appears as astericks.
ISSUE/PROBLEM
When a 123 worksheet created by Xtrieve is opened using 123, the date fields display as all astericks. This can be mistaken for garbage. Lotus 123 is telling the user that the column-width is not large enough to display the data value.
SOLUTION
Select worksheet/column-width/set-width and give the column more width.
The dates should then display properly.
Also, there are patches for Xtrieve PLUS version 4.01a and version 4.10 that fix problems with translating dates into Lotus 123 worksheets.
FYI: Printing In Landscape Mode From Xtrieve 4.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Printing In Landscape Mode From Xtrieve 4.10
DOCUMENT ID#: FYI.A.1923
DATE: 30APR92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Printing Problems with a LaserJet
ISSUE/PROBLEM
Following is the procedure to set up landscape printing in Xtrieve PLUS 4.10.
SOLUTION
The SLATE utility provided with Xtrieve v4.10 has to be used for this purpose. Start SLATE as follows:
SLATE xtrieve.pdb If you workstation hangs immediately, there may be a conflict with the video device. If this occurs, try the following:
SLATE -V6 xtrieve.pdb
This will bring up the SLATE Main Menu screen.
Select "Add/Edit Devices (Ptr Connections)". This will bring up the SLATE Devices screen. Cursor down to an unused line and type an unused number, e.g. 4001, and hit the ENTER key. This will bring up the SLATE Device Data screen. Select the following values for each prompt (use the down arrow key to move through the options):
Dev. Code: 4001 (This will already be there.)
Function: LandScape (Any other definition that may be appropriate.)
Ptr Mfg: Hit the F9 key to see options. Select one, e.g. Hewlett Packard.
(Cannot define new printer manufacturers.)
Ptr Type: Hit the F9 key to see options. Select one, e.g. LaserJet II (LS)
(LS specifies LandScape.)
(Again, cannot define new printer types.)
The options between the Ptr Type and the Paper Length (below) need not be changed.
Paper Length: Change FROM 11.00 inches TO 8.50 inches.
Paper Width: Change FROM 8.50 inches TO 11.00 inches.
Top Margin: Use at least 0.25 inches.
Bottom Margin: Use at least 0.25 inches.
(Otherwise, when it gets to the bottom line, any additional lines that remain will not get printed on the next page but will get printed on top of the bottom line.)
Left Margin: Any value (at least 0.5 inches would be fine).
Right Margin: Any value (at least 0.5 inches would ne fine).
Hit the F10 key to get to the SLATE Devices screen. Hit F10 again to get to the SLATE Main Menu. Hit F10 one more time to exit from SLATE.
Next, start up Xtrieve PLUS v4.10. Make sure the "Printers" switch is set to ON. This can be done from the Configure/Switches menu. From the Main Menu, go to the PRINT menu. Select the DATABASE option and tell it the location of the XTRIEVE.PDB file that was used with SLATE to define the LandScape printing. Select the PRINTER option and choose the proper printer. NOTE (this applies also to the above procedure on SLATE): the Hewlett Packard III is not on these lists (there might be other printers also). Choose the Hewlett Packard II (LS) - it works fine. Finally, select the DEVICE option (from the PRINT menu) and choose the LandScape definition (this option will be the one that was used for the Function option in SLATE).
This should allow Xtrieve to print in LandScape mode.
FYI: Non-Certified Hardware Under NetWare v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Non-Certified Hardware Under NetWare v3.11
DOCUMENT ID#: FYI.A.1037
DATE: 30APR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Dropped connection; server error "Running Polling Process"
ISSUE/PROBLEM
A problem occurred with the following configuration: DELL model 433TS 486/33 server, running the Btrieve NLM, with a Thomas Conrad TCNS fiber optics card (connecting the backbone). Another server on the backbone was using the Proteon SMC P1990 Token Ring card. Workstations experienced connections being dropped sporatically, server utilization would jump up to 100% with only a couple of workstations making Btrieve calls, and on one occasion the server actually abended, but locked up in 386 debug and would not permit a core dump.
SOLUTION
Verify that all hardware components are Novell approved.
FYI: NetWare 2.2 Server Memory Requirement Formula
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 2.2 Server Memory Requirement Formula
DOCUMENT ID#: FYI.A.1036
DATE: 30APR92
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: Server abends immediately after loading Btrieve VAP
ISSUE/PROBLEM
If a NetWare 2.2 server does not have enough memory, and it is configured to load the Btrieve VAP, it may appear to successfully load and initialize Btrieve, but then immediately abend. Below, is a formula from the NetWare 2.2 manual which can be used to help determining how much RAM the server will require when using the Btrieve VAP.
(.005 X MB of disk storage) + 2MB for OS + 2MB if running VAPs
So, suppose the server is equiped with a 300MB hard disk and you want to load the Btrieve VAP. Your server would require a minimum of 5.5MB of RAM, as shown below:
(.005 X 300) + 2 + 2 = 5.5MB of RAM
SOLUTION
NA
FYI: HPFS and Btrieve for OS/2 File Corruption
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: HPFS and Btrieve for OS/2 File Corruption
DOCUMENT ID#: FYI.A.2512
DATE: 29APR92
PRODUCT: Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Btrieve file corruption
ISSUE/PROBLEM
Using the OS/2 High Performance File System (HPFS), Btrieve for OS/2 and CHKDSK can lead to Btrieve file corruption. The corruption happens when the machine is rebooted. Normally, CHKDSK automatically fixes any file system problems left from having rebooted, but when OS/2 is configured to us the HPFS, this is not occurring. The file corruption caused by this problem may incude: overwritten pages in the file, truncated files, garbage inserted, or garbage appended. The garbage would usually be in 512 byte blocks, since that corresponds to the page size for HPFS. Also, the "garbage" may instead be information from a page from another Btrieve file. IBM has addressed these problems, but some people may still be using the HPFS without these fixes.
OS/2 also provides a feature called the Lazy Writer. This is a background writer and does not do synchronous writes to the disk. Btrieve does not have a flag set when opening files to instruct the Lazy Writer to write the pages directly to disk.
SOLUTION
IBM has addressed the HPFS problem, and has patches available. Customers need to contact IBM for this fix. There is currently no fix available for the Lazy Writer problem.
FYI: OS/2 2.0 and Btrieve for OS/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2 2.0 and Btrieve for OS/2
DOCUMENT ID#: FYI.A.2420
DATE: 29APR92
PRODUCT: Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Does the local Btrieve for OS/2 v5.10 (BTRCALLS.DLL) work with OS/2 version 2.0?
SOLUTION
Yes, however, OS/2 v2.0 developers writing a 32-bit application or DLL to call the 16-bit BTRCALLS.DLL, will have to modify the interface slightly in order to alias the 32-bit pointer and integer parameters. Macros are provided by the C/2 compiler to do this.
Calling the 16-bit Btrieve for OS/2 v5.10 DLL is a simple matter of rewriting the BTRCALL() prototype.
The prototype for a 32-bit application or dll would be:
extern SHORT APIENTRY16 BTRCALL (USHORT, UCHAR _Far16 *,
UCHAR _Far16 *, USHORT _Far16 *,
UCHAR _Far16 *, CHAR, UCHAR);
Everything else is handled by the compiler and linker. This is done using the IBM C Set/2.
Btrieve for OS/2 applications written for OS/2 v1.X will run under OS/2 v2.0.
FYI: Patch #26 for NetWare SQL 2.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Patch #26 for NetWare SQL 2.11
DOCUMENT ID#: FYI.A.1855
DATE: 29APR92
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The description for Patch #26, included with the XQL/NetWare SQL 2.11 patches, reads as follows:
26. OPTIONAL
XQL (DOS)
XQL (OS2)
NWSQL (VAP)
NWSQL (NLM)
This optional patch allows version 2.11 to use the European format of decimal comma instead of decimal point.
If this patch is applied, will NetWare SQL distinguish between the European format and the American standard? After further research, it has been found that if the patch is applied, the European format is the one that is recognize and used, the American format will NOT be used. It is all or nothing!
SOLUTION
NA
FYI: InLine Assembly With WATCOM C/386
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: InLine Assembly With WATCOM C/386
DOCUMENT ID#: FYI.A.3149
DATE: 28APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Previous versions of the WATCOM C/386 compiler did not support inline assembly code using assembly mnemonics; instead use the actual opcodes and operands in numeric format.
SOLUTION
Starting with version C/386 9.0, inline assembly mnemonics can be used in
FYI: Using the OS/2 Btrieve DLL With a DOS EXTENDER
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using the OS/2 Btrieve DLL With a DOS EXTENDER
DOCUMENT ID#: FYI.A.2508
DATE: 28APR92
PRODUCT: Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The OS/2 Btrieve DLL can be used in a DOS environment running a DOS extender. Phar Lap has a DOS extender which will run both OS/2 executables as well as OS/2 DLLs in DOS. DOS applications written to use the Phar Lap 286 DOS extender can use the OS/2 Btrieve and XQL client DLLs directly, without running OS/2. This environment should run OS/2 executables (text-mode) unmodified.
SOLUTION
To accomplish this, make the following call:
run286 -LOADDLL btrcalls.dll test.exe
The "run286" command is the extender. The DLL still checks for the BTRPARMS or XQLPARMS environment variable for initialization.
FYI: .BIN for Micro Focus COBOL/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: .BIN for Micro Focus COBOL/2
DOCUMENT ID#: FYI.A.2025
DATE: 28APR92
PRODUCT: Btrieve DOS 3.1
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Some Micro Focus COBOL/2 users express the desire for a .BIN interface to Btrieve like was provided for their earlier compiler, Micro Focus COBOL, with MFXBTRV.BIN. The current interfaces we provide, MF2BTRV.OBJ & CSUPPORT.OBJ, or COBRBTRV.OBJ, do not allow developers to take advantage of the COBOL/2 environment as a .BIN interface would.
SOLUTION
As a current solution, MFXBTRV.BIN can be used with Micro Focus COBOL/2. The only requirement is that the parameters that are defined as COMP-5 (byte swapped Intel integer) type with the other interfaces, be defined as COMP-0 (NON-byte swapped integer) with MFXBTRV.BIN. The exception to this is the integers used in the data buffer on extended operations; they should be defined as COMP-5.
FYI: Extended Operations With MFXBTRV.BIN
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Extended Operations With MFXBTRV.BIN
DOCUMENT ID#: FYI.A.2024
DATE: 28APR92
PRODUCT: Btrieve DOS 3.1
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 62 - Incorrect Desriptor
ISSUE/PROBLEM
Micro Focus COBOL does not support the COMP-5 (Intel byte swapped integer) type. The COMP-5 type was not supported until their latest compiler release, Micro Focus COBOL/2. MF COBOL only supported the COMP-0 (NON-byte swapped integer) type. This is why the MFXBTRV.BIN interface, for use with MF COBOL requires that the function, status, data length, and key number be defined as COMP-0. Since Btrieve is expecting byte swapped integers, MFXBTRV.BIN swaps the bytes of the COMP-0 values before passing them to Btrieve.
The problem with Extended operations is that they require byte swapped integers embedded within the data buffer. The extended get operations, for example, require an extractor made up of byte swapped integers specifying the number of records, fields, etc to retrieve. These integers are not swapped by the interface. The result is that the extended operations will not work unless these integers in the data buffer are swapped before being passed to MFXBTRV.BIN, and usually a status 62 - incorrect descriptor, will be returned.
SOLUTION
For extended operations to function correctly, all integers defined as COMP-0 that are passed in the data buffer must be byte-swapped manually by the application before the call to Btrieve. If this is done, the extended operations complete successfully.
FYI: Realia COBOL and the COBRBTRV Interface
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Realia COBOL and the COBRBTRV Interface
DOCUMENT ID#: FYI.A.2023
DATE: 28APR92
PRODUCT: Btrieve DOS 3.1
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The INTRFACE.DOC file shipped with Btrieve for DOS version 5.10a states that the COBRBTRV.OBJ interface can be used with Realia COBOL as well as with Micro Focus/2. The fact is that COBRBTRV does not work with Realia Cobol.
SOLUTION
Use REAXBTRV.OBJ when compiling a Btrieve application with Realia Cobol version 3.x or less and use the REALBT.ZIP interface in NOVLIB when using Realia Cobol version 4.x.
FYI: WINSTART.BAT To Start BREQUEST
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WINSTART.BAT To Start BREQUEST
DOCUMENT ID#: FYI.A.2022
DATE: 28APR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A problem that exists with the Btrieve requester for Windows is that at the same time, from the same workstation, DOS applications that use Btrieve cannot be run in a DOS session at the same time that a Windows application using the requester is run. The reason for this is that to access the requester from a Windows application, BREQUEST.EXE must be loaded before starting Windows, but to run a DOS application using Brequest, BREQUEST.EXE must be run in each DOS session. But, if BREQUEST.EXE is loaded before starting Windows, it cannot be loaded again in a DOS session.
SOLUTION
A solution to this problem is to use WINSTART.BAT to start BREQUEST.EXE for use with the Windows requester. WINSTART.BAT is a batch file that Windows runs automatically when it is started in 386 enhanced mode. The programs that are started from within the WINSTART.BAT file are loaded in enhanced mode and are available to Windows applications, but not to DOS sessions started in Windows. If Brequest is loaded in WINSTART.BAT, it can then be loaded again in a DOS session. To load Brequest this way, create the WINSTART.BAT file in the Windows directory and put the line BREQUEST /r:32 (or whatever parameters are required) in it.
FYI: Key Buffer Validation With Btrieve for Windows and OS/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Key Buffer Validation With Btrieve for Windows and OS/2
DOCUMENT ID#: FYI.A.2021
DATE: 28APR92
PRODUCT: Btrieve for Windows, Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Invalid key buffer and status 1015
ISSUE/PROBLEM
Local Btrieve for Windows will validate pointers when using the tracefile= <filename> in the [Btrieve] paragraph of WIN.INI. When using the requester for Windows, chkparms=yes in the [BrequestDPMI] paragraph will validate pointers. Btrieve for OS/2 will validate pointers when the environment variable BTRPARMSCHK=YES is set.
When validating pointers with Btrieve, Btrieve will validate the pointer parameters passed in for read/write access over certain ranges. If the pointers passed to Btrieve do not have access to memory specified by the pointers, a status 1015 will be returned, and in the case of using the tracefile= method with Btrieve for Windows, a message in your tracefile, 'INVALID POINTER parameter #?'. Where the ? would be 1-4 referring to the position block, data buffer, data buffer length, and key buffer respectively.
The point to be aware of is that the key buffer parameter is always evaluated for the maximum number of bytes, 255, regardless of what the key buffer length parameter is set to. So, to use pointer validation effectively, allocate the key buffer parameter as a pointer to a block of 255 bytes.
SOLUTION
NA
FYI: VIEW.DDF on Different Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: VIEW.DDF on Different Server
DOCUMENT ID#: FYI.A.2020
DATE: 28APR92
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The VIEW.DDF dictionary file is different from the other dictionary files in that it can reside on a different server. All other dictionary files must reside on the same server running NetWare SQL, while VIEW.DDF can reside on a separate server running only NetWare Btrieve.
In the future, if RI is defined on the dictionary files, then of course, this will not be possible, but for now it will work.
SOLUTION
NA
FYI: Btrieve File Corruption On NetWare 3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve File Corruption On NetWare 3.11
DOCUMENT ID#: FYI.A.2019
DATE: 28APR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Btrieve file corruption on NetWare 3.11; Btrieve status 2
ISSUE/PROBLEM
There is a problem with NetWare version 3.11 that causes Btrieve files to become corrupt. A description of the problem follows:
A NetWare v3.11 problem exists for Btrieve files with page sizes that are not 512 bytes or multiples of 1024 bytes. The problem causes file corruption, and Btrieve returns Status Code 2 (I/O Error). To avoid this problem, use one of the following page sizes: 512, 1024, 2048 or 4096.
SOLUTION
Until a fix is available for NetWare, use one of the page sizes mentioned above.
FYI: xDDFile and Status 88
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: xDDFile and Status 88
DOCUMENT ID#: FYI.A.1749
DATE: 28APR92
PRODUCT: XQL for DOS
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Status 88 - Incompatible Open Mode
ISSUE/PROBLEM
The primitive function xDDFile performs many different functions, depending on which iOption parameter is specified in the call. When iOption is set to 4, xDDFile attempts to read status information for a specified table in the dictionary, including the number of records and indexes in that table. When this call is executed, XQL attempts to open the Btrieve data file corresponding to the specified table in ReadOnly mode. However, if this Btrieve file is already open in accelerated mode (by the current XQL application, or by an XQL or Btrieve application running on a different workstation), the xDDFile function call will fail, and a status 88 "Incompatible Open Mode" will be returned.
SOLUTION
There is currently no way to avoid this error under these circumstances. However, the application can be written to trap for a status 88 as a special return code for this function, and when received, a message can be given to the user such as "This function is not available at this time."
FYI: Watchdog Configuration
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watchdog Configuration
DOCUMENT ID#: FYI.A.1035
DATE: 28APR92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.1x
SUPERSEDES: NA
SYMPTOM: Btrieve files left open on the server
ISSUE/PROBLEM
Many times people have trouble with Btrieve files being left open due to an abnormal termination of a Btrieve application, usually caused by the workstation being rebooted in the middle of a Btrieve application. If this happens, and the user at the workstation immediately logs back into the network, Bconsole will show the file as open. However, when this happens, the NetWare watchdog is responsible for clearing such a session and releasing any file handles. In addition, under NetWare 2.2 and 3.x, the watchdog is a configurable part of NetWare.
SOLUTION
For a NetWare 3.x server, Watchdog parameters can be configured at the server console (or from a workstation running the RCONSOLE utility). From the server console, type 'SET <RETURN>' and then select 'Communications'. Then select YES (or Y) for advanced configuration. Several of the displayed parameters pertain to the Watchdog configuration, as explained below.
Number Of Watchdog Packets: xx (shows current configuration value)
Limits: 5 to 100
Description: The number of times the server will ask an inactive workstation if it is still attached to the file server before terminating the workstation's connection if no response has been received.
Delay Between Watchdog Packets: xx.x seconds (shows current config value)
Limits: 9.9 to 10 minutes 26.2 seconds
Description: Amount of time the server will wait for an inactive workstation to reply to a Watchdog packet, before asking the workstation again if it is still attaced to the file server.
Delay Before First Watchdog Packet: x minutes xx.x seconds (shows config)
Limits: 15.7 seconds to 20 minutes 52.3 seconds
Description: Amount of time the server will wait, without receiving a request from a workstation, before asking the workstation if it is still attached to the file server.
For a NetWare 2.2 server, the following command can be entered at the server console prompt:
WATCHDOG [START=n] [INTERVAL=n] [COUNT=n]
where:
START is the number of seconds the server will wait to check a user's new connection (Range: 15-1200; Default=300)
INTERVAL is the number of seconds between watchdog packets (Range: 1-600; Default=60)
COUNT is the number of intervals after start before clearing an active connection (Range: 5-100; Default=10)
For further information about these and other configuration parameters, refer to the manuals provided with NetWare.
FYI: Btrieve VAP Fails When Loaded Along With UPS VAP
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve VAP Fails When Loaded Along With UPS VAP
DOCUMENT ID#: FYI.A.1034
DATE: 28APR92
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: Workstation and server hang.
ISSUE/PROBLEM
When running the UPS VAP from American Power Conversion in conjunction with the Btrieve VAP the two will eventually cause memory corruption on the server. There are no system messages which indicate any problems reoccuring at all. There are no error messages in the system error log. The server will simply cease all operations and it must be rebooted.
SOLUTION
Contact the American Power Conversion company and get their latest updated release of their VAP. Reinstall it and resume normal operations. There should be no further conflicts between it and the Btrieve VAP.
FYI: DAL Syntax For Field Names Which Contain Spaces
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DAL Syntax For Field Names Which Contain Spaces
DOCUMENT ID#: FYI.A.1033
DATE: 28APR92
PRODUCT: NetWare SQL
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: "Error in line 1" returned from DALSVR
ISSUE/PROBLEM
When trying to access field names that contain a blank from a DAL application, an "error in line 1" message will be returned by the DALSVR.NLM if the syntax is not correct. Even if the particular field in question is on line 20 of the statement, the error will still state "error in line 1". This error is returned even when using the default blank replacement character (^) in place of the blank in the field name. In addition, there is no way to set the blank character to something besides the caret from a DAL client, nor can tables with field names containing blanks be created from a DAL client.
SOLUTION
There is a special syntax supported by DAL that allows access to field names containing blanks. Such fields must have the @ character placed before and after the field name, as well as using the ^ in place of the blanks.
For example:
The Appointments table, which is one of the sample data files included with NetWare SQL v3.0 consists of the following fields:
ID Doctor
Appointment Date Code
Appointment Time Amount Paid
AM/PM Date Paid
Following is an example of the syntax required for a DAL client to access these fields:
SELECT ID, @Appointment^Date@, @Appointment^Time@
FROM Appointments;
Note how the '@' symbol and '^' symbol are used for the field names which contain blanks.
FYI: Using the Reset Function In an XQL Manager Application
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using the Reset Function In an XQL Manager Application
DOCUMENT ID#: FYI.A.1032
DATE: 28APR92
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Status 265 "Invalid Session Identifier" on XQLlogin.
ISSUE/PROBLEM
Trying to log back into a dictionary after an XQL application abnormally terminates without successfully performing a logout will return a status 265 "Invalid Session Identifier". If the application uses the XQLLogin function to log into the dictionary, a session is established with the DDF files. However, if the application abnormally terminates, or fails to perform an XQLLogout call successfully, the session is still active until either an XQLUTIL -RESET is performed, or XQL (or the NetWare SQL requester) is unloaded. Since the XQLUTIL utility cannot be distributed with an application, either the developer must provide a utility that performs an xReset or XQLStop function, or if NetWare SQL is being used, the STOPNREQ utility provided with NetWare SQL can be used to unload the requester. To unload the XQL TSR without such a utility would require the user to reboot the workstation.
SOLUTION
In order to make sure any previous sessions are reset before attempting an XQLLogin call, it is a good idea for an application to perform a reset before the login call. However, there is no Manager-level function call to perform a reset. An application using Manager functions can use the xReset primitive function to execute a reset. Since the Manager and Primitive functions require different interfaces, the application will need to incorporate the interface for the primitive functions in order to perform the xReset function. In some development environments, it's possible to modify the Manager interface to include just the appropriate information needed in order to perform the xReset primitive. If this is the only primitive needed, it may be more efficient to do this rather than compiling in both entire interfaces. For example, when developing in C, the prototype definition for xReset can be copied from the XQLPINTF.C file into the XQLMINTF.C file. This will allow the application to make the xReset call and thus reset any active session with the DDFs for the current user. The application may then proceed with performing the login.
FYI: UAE With GetNextExtended
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: UAE With GetNextExtended
DOCUMENT ID#: FYI.A.2511
DATE: 27APR92
PRODUCT: Btrieve for Windows, Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Unrecoverable Application Error
ISSUE/PROBLEM
Btrieve causes an Unrecoverable Application Error (UAE) in a Windows or OS/2 application when a GetNextExtended operation is attempted that should return a status 62. This happens when using the Windows or OS/2 client Btrieve DLL, and if the user's data buffer is less than a certain length. For Windows that length is 1251 bytes and for OS/2 it is 112 bytes.
SOLUTION
Make sure to allocate a buffer longer than the length mentioned above before making the GetNextExtended call.
FYI: Great Plains Software and Xtrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Great Plains Software and Xtrieve
DOCUMENT ID#: FYI.A.2507
DATE: 27APR92
PRODUCT: Xtrieve
PRODUCT VERSION: 3.02
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Great Plains Accounting software ships with Xtrieve version 3.02 bundled in the package. This version of Xtrieve was specially created for Great Plains. It is strictly for reporting purposes and has no update or delete capabilities
Great Plains has the Xtrieve source for this special version of Xtrieve which they bundle with their product. As such, Great Plains is responsible for supporting this Xtrieve.
SOLUTION
NA
FYI: Using NetWare SQL In A Multi-Server Environment
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using NetWare SQL In A Multi-Server Environment
DOCUMENT ID#: FYI.A.1748
DATE: 27APR92
PRODUCT: NetWare SQL 386 NLM
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Status 2103 - NetWare SQL Not Loaded
ISSUE/PROBLEM
Can a NetWare SQL application be run from a server that does not have NetWare SQL loaded, if the application attempts to use a dictionary on a different server that does have NetWare SQL loaded?
SOLUTION
The answer depends on the network configuration. When NetWare SQL is loaded on a particular server, the communications manager (NSSPXCOM.NLM) advertises its presence across the network. However, depending on the LAN configuration, all servers might not "see" the server advertising NetWare SQL. The server running the NetWare SQL application must have a bindery entry for NSSPXCOM running on the target server. If this bindery entry is not present, the application will receive an error 2103 - NetWare SQL Not Loaded on the xLogin or XQLLogin function call.
In addition, the sDDPath parameter passed to xLogin or XQLLogin can specify either \\Server\Volume:Path or Drive:Path in order to access a different server. However, the first syntax does not work with the 2.11 version of the NetWare SQL requester (NSREQ[S]). Both methods are supported with the 2.12a or later version of the requester.
FYI: Report Executive Multiple-Line Restrictions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
SYMPTOM: Status 221 - Invalid Syntax for Expression or Restriction
ISSUE/PROBLEM
Page 2-17 of the "Report Executive User's Manual" says, "The restrict expression can span multiple lines." However, a status 221 (Invalid Syntax for Expression or Restriction) is returned when the following restriction is placed in the description file:
RESTRICT="Field1 = '69826' ||
Field2 = '69829'"
(|| is used instead of the OR operator)
If the restriction is put on one line, it works.
SOLUTION
As the manual states, a restriction CAN be put on more than one line. However all lines after the line with the RESTRICT= keyword must begin with a space (or blank character). The following restriction works properly:
RESTRICT="Field1 = '69826' ||
Field2 = '69829'"
When processing a RESTRICT statement, the Report Executive strips off all blank characters at the end of each line, and tries to append the next line to the restriction. If there is no space at the beginning of the next line, then ".. || Field2 .." will be read in as ".. ||Field2 ..", and a status 221 will be returned. The Report Executive strips the blanks off of the end of each line because many text editors blank-pad the end of each line.
FYI: MONITOR CPU Utilization Calculation Anomaly
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MONITOR CPU Utilization Calculation Anomaly
DOCUMENT ID#: FYI.A.3148
DATE: 22APR92
PRODUCT: NetWare Operating System
PRODUCT VERSION: 3.x
SUPERSEDES: NA
SYMPTOM: CPU Utilization jumps up when NLM is loaded
ISSUE/PROBLEM
Recently, a problem with the MONITOR NLM's CPU Utilization was reported to Engineering stating that the percent utilization jumps up whenever an NLM is loaded. If MONITOR is unloaded, then reloaded, the value would once again be calculated correctly.
SOLUTION
Engineering reported the following: This is how MONITOR works. Everytime an NLM is loaded, the utilization base is recalculated. To get an accurate picture of the CPU utilization, you must refer to the histogram statistics. There are no plans to change the way this works.
FYI: GetFileServerID() Does Not Return A Value Of -1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetFileServerID() Does Not Return A Value Of -1
DOCUMENT ID#: FYI.A.2940
DATE: 22APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: NA
SYMPTOM: fileServerID returned when not logged in to server.
ISSUE/PROBLEM
When calling the GetFileServerID() API, if the NLM is not logged in to the named file server, the fileServerID should return a value of -1.
However, the following sequence:
LoginToFileServer()
GetFileServerID()
LogoutFromFileServer()
GetFileServerID()
will return a valid fileServerID instead of a -1. According to the documentation, the fileServerID received should be -1 when the NLM is not logged in.
SOLUTION
Currently, there is no workaround.
FYI: Accessing a Btrieve File From a Dos Box Under Windows 3.1.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Accessing a Btrieve File From a Dos Box Under Windows 3.1.
DOCUMENT ID#: FYI.A.2937
DATE: 22APR92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 2 under a Windows 3.1 DOS Box
ISSUE/PROBLEM
When trying to access a Btrieve file from a Dos Box under Standard Mode of Windows 3.1, a Btrieve status 2 (I/O Error) may occur. This can be eliminated by loading the TBMI2.COM file before loading Windows 3.1. This TBMI2.COM file is supplied with Windows 3.1 and eliminates the need for loading TASKID.COM when using the TBMI2.COM file as was done in previous versions.
SOLUTION
NA
FYI: CLIB_OPT Parsing Parameters Incorrectly
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB_OPT Parsing Parameters Incorrectly
DOCUMENT ID#: FYI.A.3147
DATE: 21APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Can't login to server AND set current directory
ISSUE/PROBLEM
Mixing the /S and /P CLIB_OPT parameters when loading an NLM will not yield the correct results. Since /S (login to server) is processed after /P (set current directory), whatever is set with /P is simply overridden when /S is processed.
SOLUTION
Currently no workaround, other than doing the login and chdir within the NLM, rather than using CLIB_OPT.
FYI: LoginToFileServer() and Return Code 223
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LoginToFileServer() and Return Code 223
DOCUMENT ID#: FYI.A.3146
DATE: 21APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Cannot login after password expires
ISSUE/PROBLEM
When attempting to login to a server with a user account that has an expired password, CLib will not handle this properly, and execute a logout even though there were grace logins still available. Normally, a return code of 223 (ERR_PASSWORD_EXPIRED) AND a successful login would be expected.
SOLUTION
Currently, the only solution is to change the password, so that it is no longer expired.
FYI: ScanFileEntry() Problems
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanFileEntry() Problems
DOCUMENT ID#: FYI.A.2660
DATE: 21APR92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: ScanFileEntry for NW 2.x
ISSUE/PROBLEM
The API ScanFileEntry() has never worked for NetWare 2.x from the C-Interface for DOS version 1.2. This API attempts to make both NetWare 3.x specific and NetWare 2.x specific NCP calls. The NetWare 2.x NCP was to intended to be identical to the ScanFileInformation() API, although several problems are evident in the source.
SOLUTION
The following modifications may be made to the SCFILE.C file in the CLIENT directory for the C Interface for DOS version 1.2:
if (!isV3)
{
/*--------- Send out the package for a 286 request -------*/
With these small changes the ScanFileEntry works successfully for NetWare 2.x.
FYI: OpenLocalSemaphore() returns LONG
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OpenLocalSemaphore() returns LONG
DOCUMENT ID#: FYI.A.2939
DATE: 16APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare Loadable Module Library Reference Volume I, page 19-61 has a small example at the bottom of the page. The example shows that the OpenLocalSemaphore() function returns a completionCode which is declared as an int data type. The completionCode, however, MUST instead be declared as a LONG data type.
SOLUTION
NA
FYI: Converting Decimal Numbers to Binary Strings in BASIC
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Converting Decimal Numbers to Binary Strings in BASIC
DOCUMENT ID#: FYI.A.2113
DATE: 15APR92
PRODUCT: Btrieve
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When developing Btrieve applications in MicroSoft BASIC, the need to perform BIT manipulation may arise from time to time. An example of this would be extracting file information from the return data buffer on a Btrieve STAT operation.
SOLUTION
The following piece of BASIC code will demonstrate how to build a string of binary information when given a decimal number. This string can then be parsed to extract the appropriate bit information.
Bin$="" 'Initialize the string
INPUT"Decimal number = ";Decimal 'obtain the decimal number
FOR i = 14 TO 0 STEP -1 'Positive numbers only
pow2 = 2^i
IF Decimal >= pow2 THEN
Decimal = Decimal - pow2
Bin$ = Bin$ + "1"
ELSE
Bin$ = Bin$ + "0"
END IF
NEXT i
PRINT"Binary String = ";Bin$
FYI: Borland C++ and Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Borland C++ and Btrieve
DOCUMENT ID#: FYI.A.1872
DATE: 15APR92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Name Mangling is an attribute of the Borland C++ compiler. Simply stated, name mangling allows multiple definitions of functions within an application. Name mangling is documented on page 34 of the Borland C++ Programmer's Guide, version 2.0.
For the Btrieve programmer using the WBTRINTF.C file supplied with the Btrieve for Windows Development Kit version 5.10, it can cause some havoc. When the program is linked, unresolved externals can appear. The linker may return: unresolved external btrv(). It can also be expected to return all the functions defined in the C file in lower case.
According to the way the Btrieve prototypes and functions are written there is not a lower case btrv(). Why would the linker think that the function btrv() should be defined somewhere?
What has happened is that the C file was compiled as a C++ file and consequently name mangling occurred on the BTRV function and every other function defined in the DLL.
SOLUTION
To stop name mangling from occurring, a compiler directive can be set to treat functions as a regular C function if the files are being compiled as C++ files by default.
The directive is:
ifdef __cplusplus
extern "C" {
endif
ifdef __cplusplus
}
endif
Everything between the two statements will be treated as standard C functions and name mangling will not be performed. This means that the function's prototypes could be defined in a series of include files. Those files could be placed between the compiler directives.
For example, WBTRV.H could be included between the directives and then the function BTRV would not be mangled by the compiler. There are multiple ways to implement the directive and there is not a right or wrong way. The main thing is to understand that the compiler will mangle function definitions if the directive is not used.
FYI: Status 94 - Permission Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 94 - Permission Error
DOCUMENT ID#: FYI.A.1859
DATE: 15APR92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Status 94
ISSUE/PROBLEM
A status 94 indicates that a user cannot open a file due to some type of permission error. The user indicates that they can open other files in the same directory just not the one receiving status 94, indicating that the user does have the appropriate NetWare rights for that directory.
SOLUTION
Check to make sure that the file's name is being passed in as part of the path and filename. A status of 94 can be returned if the pathname is missing the filename (i.e. only consists of the directory path) in the key buffer being passed to Btrieve.
For example,
\dir1\dir2\file.btr => returns a status 0 on OPEN
\dir1\dir2 => returns a status 94 on OPEN
FYI: SetEntry()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetEntry()
DOCUMENT ID#: FYI.A.3843
DATE: 10APR92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: SetEntry() returns SUCCESSFUL but does not set attributes.
ISSUE/PROBLEM
SetEntry() was not able to set the attributes for a directory, however, the return code was SUCCESSFUL.
SOLUTION
SetEntry() requires a 'sequence' parameter which is the ID of the directory or file entry to be modified. This sequence number should be obtained from ScanDirEntry() function. GetDirEntry() also returns the same structure as ScanDirEntry(), however, the sequence number returned in the structure from GetDirEntry() is not valid.
FYI: Realia COBOL 4.x Interface For XQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Realia COBOL 4.x Interface For XQL
DOCUMENT ID#: FYI.A.3016
DATE: 10APR92
PRODUCT: XQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Status 0 returned even if function failed.
ISSUE/PROBLEM
The Realia COBOL interface that shipped with XQL for DOS version 2.11 (COBXQLPR.OBJ or COBXQLMR.OBJ) does not work properly with version 4.x of Realia COBOL. Status 0 is returned even when the function is not successful.
SOLUTION
There will be a new interface for Realia COBOL v4.x available with NetWare SQL 3.0.
FYI: HL3270CP Returns Invalid Label Reference
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: HL3270CP Returns Invalid Label Reference
DOCUMENT ID#: FYI.A.2836
DATE: 09APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.5
SUPERSEDES: NA
SYMPTOM: "Invalid Label Reference" when underscores are used
ISSUE/PROBLEM
NetWare 3270 HLLAPI Command Processor (HL3270CP.EXE) v1.1.A returns "Invalid Label Reference" when underscores are used in the label of the Command List file.
SOLUTION
This has been reported and expecting a fix in the next version of the Command Processor.
FYI: NetWare 3270 API Function-17
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 3270 API Function-17
DOCUMENT ID#: FYI.A.2835
DATE: 09APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.6
SUPERSEDES: NA
SYMPTOM: "Insufficient Buffer Pool" and "Control Program No Longer Resident" error
ISSUE/PROBLEM
Function-17 (Perform Structured Field Operation) will return an error "Insufficient Buffer Pool" and "Control Program No Longer Resident" while copying data from the presentation space to the pre-defined application buffer.
SOLUTION
Increase the stack and heap size in the Gateway configuration by loading GWCONFIG GWSERVER /D and increase the values in Internal Customization panel.
FYI: GetEffectiveRights() Returns Invalid Rights
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetEffectiveRights() Returns Invalid Rights
DOCUMENT ID#: FYI.A.2834
DATE: 09APR92
PRODUCT: Network C for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: GetEffectiveRights() returns Write rights erroneously
ISSUE/PROBLEM
The GetEffectiveRights() API returns with Write rights for the effective rights of the directory even if Write rights for that directory do not exist.
SOLUTION
There is no work around.
FYI: mkdir() Incorrectly Sets errno
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: mkdir() Incorrectly Sets errno
DOCUMENT ID#: FYI.A.2833
DATE: 09APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: errno incorrectly set to ENOENT.
ISSUE/PROBLEM
When attempting to create a directory that already exists, mkdir() correctly returns a -1 but incorrectly sets errno to ENOENT (1-No such file or directory) instead of setting errno to EACCES (6-Permission Denied). This has been tested on 3.11 server with and without the CLIB patches loaded; results are the same in both environments.
SOLUTION
No workaround as of now.
FYI: Bug fixes in HLLAPI v2.2.f.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Bug fixes in HLLAPI v2.2.f.11
DOCUMENT ID#: FYI.A.2832
DATE: 09APR92
PRODUCT: 3270 Tools for DOS
PRODUCT VERSION: 1.5
SUPERSEDES: PTF-253
SYMPTOM: NA
ISSUE/PROBLEM
PTF253.ZIP fixes the following problems:
The current version of the HLLAPI 2.2.f.11 has fixed the problems with
Pause, Find Field Length and Find Filed positon api's which were reported as bugs earlier.
The inaccurate calculation of wait time by the Pause function is now fixed.
Find Field Length function was returning an invalid field length for row 24 of the PS (presentation space).
Find Field Position, was not returning a valid field position for the
offset 1 which is a starting location of the PS.
FYI: Desqview V.2.4 and IPXSendPacket()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Desqview V.2.4 and IPXSendPacket()
DOCUMENT ID#: FYI.A.3842
DATE: 08APR92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: IPXSendPacket() fails if used from within Desqview.
ISSUE/PROBLEM
If IPXSendPacket() is called from Desqview V.2.4, it returns 252 (INTERNET_PACKET_REQT_CANCELED).
SOLUTION
Desqview v2.4 needs to be configured during its installation for IPX/SPX calls. The installation program for Desqview v2.4 has an advanced setup option. Select N (for Network) from the Advanced Setup and then select 'y' for the DVIPX.DVR which supports the Novell Netware IPX/SPX interface. Then increase the Network Buffers from the default value of 8 to 10 in the same setup screen. Save the configuration, and start Desqview again from the DOS prompt.
FYI: Setting Show Dots On or Off From An Application
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Setting Show Dots On or Off From An Application
DOCUMENT ID#: FYI.A.1653
DATE: 08APR92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Is there a way, after the shell is loaded, to change whether the "." and ".." entries show up in a directory?
SOLUTION
The "." is usually referred to as the current directory and the ".." is usually referred to as the parent directory. Many programs that allow you to traverse the directory tree rely on these dots showing up when they scan the directory to allow you to back up one directory level. When the SHOW DOTS parameter is off, this becomes impossible. Normally, the SHOW DOTS parameter is set by adding an entry to the shell.cfg (or net.cfg) file as follows:
SHOW DOTS=ON
or
SHOW DOTS=OFF
The problem with this method is that it requires the change to be made before the shell is loaded.
To change this state programatically, make an INT 21h call as follows:
On Entry:
AX = E908h
BL = 00h (SHOW DOTS=OFF)
01h (SHOW DOTS=ON)
On Return:
BL = Previous setting
FYI: Determining if NASI is Loaded
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Determining if NASI is Loaded
DOCUMENT ID#: FYI.A.1319
DATE: 08APR92
PRODUCT: NASI
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here are the steps to determine if the NetWare Asychronous Services Interface (NASI) TSR is loaded.
- Since NASI uses interrupt 6Bh, view the contents of the 2 words at offset 1ACh.
- Go to the segment and offset plus three bytes (SEG:OFFSET+3) listed in the 2 word entry.
- Compare the value of the next 4 bytes with the following value: NCSI If the values match, NASI is loaded.
SOLUTION
NA
FYI: Distinguishing Netware NASI from Network Products NCSI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Distinguishing Netware NASI from Network Products NCSI
DOCUMENT ID#: FYI.A.1318
DATE: 08APR92
PRODUCT: NASI
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Novell's NASI was orginally acquired from Network Products Corporation. Since that time, both companies offer the product, however, there are some differences which will not be discussed here. Novell's TSR is called NASI and Network Products' TSR is called NCSI. Both TSRs can be queried to determine if it is loaded in memory. The signature string to look for is NCSI. Both products actually return the same signature string. With NetWare NASI v3.0, the signature string is followed by the letter 'A'. Signature strings for prior versions of NASI were not discernable from the Network Product NCSI signature string.
SOLUTION
NA
FYI: Allocating Memory Below 16Meg With an NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Allocating Memory Below 16Meg With an NLM
DOCUMENT ID#: FYI.A.3711
DATE: 07APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using NetWare v3.11, if memory is allocated using the OS function AllocBufferBelow16Meg(), does the returned memory address need to be mapped to a data offset using the MapAbsoluteAddressToDataOffset() function?
SOLUTION
No. Previous versions of NetWare used different physical and logical memory address spaces, so it was often necessary to map an absolute address to a logical address (or vice versa). When v3.11 came along, all of the complicated memory address mapping went away, so all physical and logical memory addresses are the same. In fact, the MapAbsoluteAddressToDataOffset() function is really a dummy, included for backward compatibility; it just returns the address that is passed to it.
FYI: CLIB.NLM tmpnam() doc error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB.NLM tmpnam() doc error
DOCUMENT ID#: FYI.A.3841
DATE: 06APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the Alphabetical Listing of the CLIB.NLM functions in the Volume II of Netware Library Reference, the function tmpnam() is misprinted as tmpman(). There is no tmpman() function, and it should be tmpnam().
SOLUTION
NA
FYI: ScanUserSpaceRestrictions() Fails On Remote Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanUserSpaceRestrictions() Fails On Remote Server
DOCUMENT ID#: FYI.A.3361
DATE: 06APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 20b
SUPERSEDES: NA
SYMPTOM: Missing disk restrictions.
ISSUE/PROBLEM
ScanUserSpaceRestrictions does not return all of the objects with space restrictions if it is used against a remote 3.x file server. The first twelve are returned, but subsequent calls only return one trustee.
SOLUTION
NA
FYI: Tracking Down Unreleased Memory In An NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Tracking Down Unreleased Memory In An NLM
DOCUMENT ID#: FYI.A.3145
DATE: 06APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Unreleased memory in NLM.
ISSUE/PROBLEM
Often times, an NLM will display a message like: "Module did not release 1264 resources", or "Resource: Small memory allocations". This usually implies that the NLM forgot to release some memory. How can this memory be tracked down?
SOLUTION
Here's a method to determine which pointer or pointers were not properly freed. It works on NetWare v3.11 with CLib v3.11:
Drop into the Internal Debugger.
Set a breakpoint exactly like this: 'b=malloc-4d+[dmalloc-9]'
Run the NLM
When the NLM exits, the debugger will be entered once for each unfreed pointer. Once in the debugger, register EAX contains a pointer to the unfreed memory.
FYI: NWSetFileServerDateAndTime() Missing in OS/2 SDK
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NWSetFileServerDateAndTime() Missing in OS/2 SDK
DOCUMENT ID#: FYI.A.1317
DATE: 06APR92
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare C for OS/2 SDK v1.2 does not contain a call to set the file server date and time. This call will be available in a future release of the SDK, however, no time frame has been set.
SOLUTION
NA
FYI: Time Functions in Turbo C++ Compiler
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Time Functions in Turbo C++ Compiler
DOCUMENT ID#: FYI.A.3840
DATE: 03APR92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: Time returned is 1 hour ahead.
ISSUE/PROBLEM
Time functions in Turbo C++ compiler version 1.0 return the incorrect time for the dates between April 1, 1992 and April 5, 1992. The time returned is one hour ahead of the actual time. The specific functions are time() and LocalTime().
SOLUTION
This is only a problem in Turbo C++ compiler versions prior to version 3.0. The problem does not appear in the compiler versions 3.0 or higher.
FYI: ChangeDirectoryEntry() Returns Error Code of 1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ChangeDirectoryEntry() Returns Error Code of 1
DOCUMENT ID#: FYI.A.3144
DATE: 03APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Unknown return code from ChangeDirectoryEntry()
ISSUE/PROBLEM
ChangeDirectoryEntry() returns 1 if any of the following conditions occur:
1. OwnerID is invalid
2. LastUpdatedID is invalid
3. LastArchivedID is invalid
4. maximumSpace is invalid, i.e. less than -1 or equal to 0x7FFFFFFF
SOLUTION
This is simply a documentation oversight.
FYI: How does Bconsole get its information?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How does Bconsole get its information?
DOCUMENT ID#: FYI.A.1858
DATE: 03APR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.1x
SUPERSEDES: NA
SYMPTOM: How does Bconsole Get its information?
ISSUE/PROBLEM
Bconsole gets most of its information from internal tables that are built in server memory. There are no direct APIs to retrieve the same data from an external application.
SOLUTION
NA
FYI: Locks and Transactions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Locks and Transactions
DOCUMENT ID#: FYI.A.1857
DATE: 03APR92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Since Btrieve does not allow an application to lock a record on an insert call, how can an application be guaranteed to achieve a lock on a newly inserted record? One possibility would be to issue a begin transaction operation, insert the record, and then retrieve it with a lock. However, when the end transaction or abort transaction operation is issued, Btrieve releases any outstanding locks.
SOLUTION
One possible solution would involve utilizing an extra 'field' (one byte would be sufficient) in each record which controls when a record can be locked by any user. When this field is set, no other user can lock the record. Newly inserted records would have this field set, so that only the application that just inserted it would be able to retrieve it with a lock. Of course, this requires that the application be responsible for updating the record and resetting this field when appropriate so that the "lock" gets released. This would also require that all other applications read the record and check this field before attempting to lock the record.
FYI: The LVAR Data Type
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
Incorrect usage of the LVAR data type can cause the NetWare SQL VAP to abend the server. With the NetWare SQL NLM or client XQL, workstation memory overwrites will occur, causing the application to hang or abort. This can be reproduced by a series of calls that insert, modify and delete variable length
records. The problem is caused by the way the LVAR field is defined before the data is inserted or updated. For example, suppose an LVAR with a maximum length of 300 is defined, and data is placed into the field as follows:
1) The length word is set to 0x02.
2) The next two bytes are set to 0x00.
3) The rest of the 300 byte array is set to 0x20 (spaces).
The result of these steps is a variable length record of at least 8224 bytes.
Why?
LVARs are defined to allow multiple variable portions of data for each record. One example of how this can be used would be in an application that simulates text formatting for a variable length text field. In this example, the length word could signify how many characters should be on a line. So if the length is set to 0x14 then the next 20 characters should be displayed on one line. So, the LVAR has a length word followed by the number of bytes of data indicated by that length. This repeats until a length byte of 0 (which equate to two bytes of binary zeros) is found, indicating the end of the record.
In the example shown above, the LVAR was improperly defined in step 3. The first two spaces (0x2020) would be interpreted as a length word. This would tell NetWare SQL that the next 8224 bytes are data. This process would repeat until NetWare SQL found two null bytes, indicating the end of the LVAR data.
When an application attempts to read this improperly structured LVAR data, NetWare SQL returns all 8000+ bytes, even though the application was only expecting a maximum of 300 bytes.
It is important to understand that LVARs use that length indicator when storing the data, and then expect two NULL bytess to signify that NetWare SQL should stop looking for more length words and data.
SOLUTION
When programming with LVARs, the array used for this field should be initialized with NULL bytes instead of spaces. This will provide for the terminating NULLs after the significant data is placed in the array.
FYI: Platinum Error When Using NetWare Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Platinum Error When Using NetWare Btrieve
DOCUMENT ID#: FYI.A.1747
DATE: 03APR92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: Platinum error "... data will be lost ..."
ISSUE/PROBLEM
Platinum Accounting System ships with Btrieve for DOS, however it can be run with NetWare Btrieve. A problem that might be encountered when using Brequest and a brand new copy of Platinum is that Platinum requires the copy to be registered. A warning message telling the user to "please register or your data will be lost in 15 days" is displayed until the registration option is completed. This option, however, attempts to write to a local drive, which will only work if client Btrieve is loaded. Once this operation is complete, Platinum will work with either client Btrieve or NetWare Btrieve.
SOLUTION
NA
FYI: SetCapturePrintQueue() System Call
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetCapturePrintQueue() System Call
DOCUMENT ID#: FYI.A.3839
DATE: 01APR92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation of SetCapturePrintQueue(), function B8h(06h), mentions to pass the first word (which is the low order) of the QueueID in the BX register and the second word (which is the high order) in the CX register. However, if these are reversed and the high order word is passed in BX and the low order word is passed in CX, the function returns a successful return code but the target print queue will not be set and capturing will fail.
SOLUTION
Make sure to pass the low order word in the BX register, and the high order word in the CX register.
FYI: MakeProcInstance() In Windows Applications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MakeProcInstance() In Windows Applications
DOCUMENT ID#: FYI.A.3838
DATE: 01APR92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Netware C Interface for Windows documentation mentions (pg.5-6) that MakeProcInstance() must be called to obtain the ESR address for submission to ECBs. However, Microsoft Windows SDK Reference Volume 1 (pg. 4-304) mentions that this function is not required for library modules.
SOLUTION
MakeProcInstance() only needs to be called if the ESR is not in a fixed segment.
FYI: Preferred ConnectionID in Windows Applications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Preferred ConnectionID in Windows Applications
DOCUMENT ID#: FYI.A.3837
DATE: 01APR92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: Preferred Connection set to 0 under Windows
ISSUE/PROBLEM
The workstation's preferred ConnectionID sometimes changes to 0 even though the application had earlier called SetPreferredConnectionID() and it had been set to some valid ConnectionID other than 0.
SOLUTION
If an application calls SetPreferredConnectionID(), it is possible that some other Windows application might change that PreferredConnectionID to another connection ID. The workaround to this problem is to call SetPreferredConnectionID() before every request to the desired server.
FYI: readdir() Slows Down With Many Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: readdir() Slows Down With Many Files
DOCUMENT ID#: FYI.A.3143
DATE: 01APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: readdir() takes too long to read next entry
ISSUE/PROBLEM
The readdir() API, when issued to a remote 2.x server, will begin to slow down dramatically, when approximately 1600 or more files exist in the directory being scanned.
SOLUTION
Right now, the only solution is to reduce the number of files in each directory.
FYI: SpxListenForConnectedPacket() Is Not Documented
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SpxListenForConnectedPacket() Is Not Documented
DOCUMENT ID#: FYI.A.3142
DATE: 01APR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Starting with PATCH311, a new API called SpxListenForConnectedPacket() was added to the CLib for NetWare v3.11. This API allows you to post an ECB on a specific SPX session. The prototype is:
int SpxListenForConnectedPacket(
unsigned short socket,
SPX_ECB *ECBp,
unsigned short connection);
where 'socket' is the open socket (0 if specified in the ECB), 'ECBp' is a pointer to the listen ECB and 'connection' is the SPX connection number assigned when the connection was established. This API must be added to the import symbol list, or it can be added to the CLIB.IMP file.
SOLUTION
NA
FYI: Using BROLLFWD with Btrieve for DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using BROLLFWD with Btrieve for DOS
DOCUMENT ID#: FYI.A.2111
DATE: 01APR92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve for DOS Installation and Operation Manual discusses the logging of Btrieve files to another volume on the server. It does not however, discuss how to log a Btrieve file to another physical hard drive or mapped drive.
SOLUTION
The BLOG.CFG file indicates which files should be logged. This configuration file must reside in the BLOG directory off the root of the volume containing the Btrieve file(s) to be logged. The entry into the BLOG.CFG file should be in the following format to log a Btrieve file to another physical drive:
<Btrieve filename> [=<logname>]
where: <Btrieve filename> - is the absolute pathname of the Btrieve file to be logged WITHOUT THE DRIVE LETTER. It must begin with a backslash (\).
<logname> - is the absolute pathname to the associated log file INCLUDICLUDING THE DRIVE LETTER.
For example, suppose a Btrieve file called TEST.BTR resides on the server in the F:\DATA directory, and the log file is to be maintained on a local hard drive (Drive C:\BTRIEVE\LOG\TEST.LOG). The entry into the BLOG.CFG file would be written as:
\DATA\TEST.BTR=C:\BTRIEVE\LOG\TEST.LOG
NOTE: This is only for Btrieve for DOS. When using NetWare Btrieve, drive letter can not be specified for either the Btrieve filename or the logfile.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The documentation of FEGetOriginatingNameSpace() does not mention the return values for the different name spaces.
SOLUTION
This function returns 0 for DOS
1 for MACINTOSH
2 for NFS
3 for FTAM
4 for OS2
These values are mentioned in the documentaion of GetNameSpaceName().
FYI: Register Passing with Microsoft C 6.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Register Passing with Microsoft C 6.0
DOCUMENT ID#: FYI.A.3223
DATE: 31MAR92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Microsoft C 6.0 has a new command line parameter /Gr, which specifies that functions will pass parameters in registers. If this switch is used, none of the NetWare C-Interface functions will be resolved at link time. Microsoft does not export these symbols with an underscore before the function name when register-passing is used. Therefore, the C-Interface functions will not be recognized.
SOLUTION
To solve this problem you must do two things. First, include stddef.h before nit.h. Second, add the cdecl pragma before each of the C-Interface functions to be used. This will insure that those symbols will be exported with the underscore before the function name and the parameters will be pushed on to the stack.
FYI: Btrieve for Windows Load Parameters
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve for Windows Load Parameters
DOCUMENT ID#: FYI.A.2419
DATE: 27MAR92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When the WBTRCALL.DLL is loaded into memory during the first Btrieve call from a Windows application, are the Btrieve load parameters "global" for all other Btrieve for Windows applications running in different Windows sessions, or can each session have different Btrieve load parameters, even though all the applications are using the same WBTRCALL.DLL?
SOLUTION
When using the local WBTRCALL.DLL, each Windows session can specify different Btrieve load parameters if each application calls the WBTRVINIT() function. This call allows you to pass a string containing the Btrieve load parameters, and should be the first Btrieve call made by the application. If the WBTRVINIT() function is not used, then the load parameters specified in the [btrieve] section of the WIN.INI file will be used. If there is not a [btrieve] section in WIN.INI, default values for the parameters will be used when the WBTRCALL.DLL is loaded. Refer to the Btrieve for Windows Installation and Operation manual for a complete description of the Btrieve load parameters and their default values.
When using the requester WBTRCALL.DLL, the Btrieve load parameters are essentially "global" since they can only be specified in the [brequestDPMI] section of the WIN.INI file. The WBRQSHELLINIT() function is not currently implemented to initialize the requester WBTRCALL.DLL from within an application.
FYI: Spawning an NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Spawning an NLM
DOCUMENT ID#: FYI.A.1526
DATE: 27MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 20b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When an NLM is spawned from another NLM, start-up messages for the NLM are displayed on the NLM screen which called the spawn function. This is not desireable for some applications since the start-up messages may corrupt the formatted layout of the NLM screen.
SOLUTION
Before spawning an NLM, set the ScreenID to the ID of the system console, spawn the NLM, then set the ScreenID back to the NLM's original ScreenID. The start-up messages for the spawned NLM will then be sent to the system console rather than the calling NLM's screen.
The following call will return the screen ID for the system console :
screenID = CreateScreen("System Console",0)
FYI: Calling a CLIB function from an AES process abends the server.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling a CLIB function from an AES process abends the server.
DOCUMENT ID#: FYI.A.1525
DATE: 27MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 20b
SUPERSEDES: NA
SYMPTOM: Server abend.
ISSUE/PROBLEM
Calling a CLIB function from an AES process abends the server.
SOLUTION
Before an AES (Asynchronous Event Scheduler) process calls a CLIB function, the ThreadGroupID must be set to the ThreadGroupID of any loaded CLIB NLM, The most obvious would be the NLM which scheduled the AES process. The ThreadGroupID can be added as an element of the AES structure that is passed to the AES function. The AES function should then set the ThreadGroupID (first saving the current ThreadGroupID), make the CLIB calls, then before exiting the AES process set the ThreadGroupID to the original value when the process was invoked.
The description above applies to both SLEEP and NO SLEEP AES processes. However, with NO SLEEP AES processes there is an additional restriction that the AES process may NOT call any CLIB blocking functions (i.e. printf(), delay() etc.).
FYI: Loading Btrieve from a Turbo Pascal Program
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading Btrieve from a Turbo Pascal Program
DOCUMENT ID#: FYI.A.1524
DATE: 27MAR92
PRODUCT: Btrieve
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can the Btrieve TSR be loaded from within a Turbo Pascal application?
SOLUTION
When loading Btrieve from a Turbo Pascal program, the executable file name with the extention must be passed to the EXEC procedure. The following two examples both work under Turbo Pascal.
Without the file extention, a Pascal DOS error 2 (file not found), will be returned. This was tested with Turbo Pascal version 5.0 and 6.0.
FYI: Can't Create Network Printers On COM3, COM4.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Can't Create Network Printers On COM3, COM4. NetWare Lite
DOCUMENT ID#: FYI.P.5931
DATE: 25MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Can't create network printers on COM3 and COM4
ISSUE/PROBLEM
Customer has several serial printers, and wants to use COM3 and COM4 as network printers.
SOLUTION
NetWare Lite doesn't let you create network printers on COM3 and COM4. The reason for this is that COM1 and COM3 use the same hardware interrupt and COM2 and COM4 use the same hardware interrupt. So DOS can't use both 1 and 3 at the same time, nor use 2 and 4 at the same time.
This is true unless you have an EISA machine, which apparently lets you set a type of second level interrupt, and distinguish between the 1 and 3, and 2 and 4 COM ports. NetWare Lite would still let you use only 1 and 2.
FYI: Applications Report Access Denied. Open Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Applications Report Access Denied. Open Files
DOCUMENT ID#: FYI.P.5925
DATE: 25MAR92
PRODUCT: NetWare
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Applications Report Access Denied.
ISSUE/PROBLEM
Applications report "Access denied" or "Insufficient file handles" when running application through a drive mapped to yourself. Examining the server status from another workstation shows available file handles (e.g. max open files=50 currently open files=25).
SOLUTION
Files opened through client cause the open file counter on the client machine to be incremented as well as the file counter on the server where the file resides. If the two machines happen to be the same then the open file counter gets incremented twice for every file opened. This only happens when accessing files via the network (i.e. through a mapped drive).
Rather than mapping to yourself, use the SUBST command instead. For example: You have f: mapped to the network directory APPS which has actual path c:\apps on the server. On the server you would do "subst f: c:\apps" instead of "net map f: apps". Then the file counter will only go up by 1 for each open file and disk I/O will be a lot faster. Of course, you still have to use the map command at workstations.
FYI: VIPX.386 and IPXSendPacket
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: VIPX.386 and IPXSendPacket
DOCUMENT ID#: FYI.A.3360
DATE: 25MAR92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: Garbage in the AL register
ISSUE/PROBLEM
When making IPX calls in a DOS BOX under Windows with the 1.0 version of System Calls - DOS, the 1.11 version of VIPX does not update the AL register when an ECB is successfully posted with IPXSendPacket(). The AL register is updated only when an error occurs. However, this can be a problem if the AL register is not cleared before making the IPXSendPacket() call as garbage may be interpreted as an error condition.
SOLUTION
Clear AL before making the IPXSendPacket() call.
FYI: Interfacing Btrieve with MS Visual Basic
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Interfacing Btrieve with MS Visual Basic
DOCUMENT ID#: FYI.A.2112
DATE: 25MAR92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: FYI.A.2102
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve for Windows Developers Kit provides Visual BASIC programmers with all the necessary tools for creating applications that are compatible with Btrieve, Novell's high performance key-indexed record manager. Any application written with Btrieve for Windows will run with either the NetWare 2.X (VAP) or NetWare 3.X (NLM) versions of NetWare Btrieve or with the Client Windows version of Btrieve.
SOLUTION
By studying the Btrieve for Windows interface (WBTRINTF.C), it can be determined how the Btrieve for Windows Dynamic Link Library (DLL) expects the parameters for each Btrieve call. For example, one method of calling Btrieve is to call the function BTRCALL () in the DLL. This method requires seven parameters and is done as follows:
BTRCALL (int opcode,
(char far*) position_block,
(char far*) data_buffer,
(unsigned far*) data_buffer_length,
(char far*) key_buffer,
(unsigned char) key_buffer_length,
int key_number);
Notice there is an additional parameter: key_buffer_length. This parameter is always validated over 255 bytes. When tracing with Btrieve for Windows, you may encounter an "INVALID POINTER parameter #4" error which corresponds to the key buffer. The reason for this, is that Btrieve is evaluating the key buffer for the maximum number of bytes, 255, even though you may have a key buffer that is set to only 10 bytes in length. Furthermore, the message for an invalid pointer for parameter #4 is relatively meaningless. It just means that you have a key buffer declared that is less than 255 bytes.
In Visual Basic, by default, all parameters passed to functions are passed by reference (by address). Parameters that need to be passed by value, need to be declared in the parameter list with the BYVAL keyword in front of each parameter. If you pass a string by value (with BYVAL keyword), this will be the equivalent to passing a (char far *) in C, therefore any of the above parameters which require a (char far *) cast and are defined as strings can be declared with the BYVAL keyword. The following example will show how to initialize the Btrieve functions and make a simple Btrieve OPEN and RESET call in Visual Basic.
FYI: Printing Garbage Characters In Windows From LPT1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Printing Garbage Characters In Windows From LPT1
DOCUMENT ID#: FYI.P.5932
DATE: 24MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11 and v2.2
SUPERSEDES: NA
SYMPTOM: Printing Garbage Characters In Windows From LPT1
ISSUE/PROBLEM
Printing from within Windows using either WordPerfect or Write, would give pages of control type characters (from LPT1 in Windows). If a printer was connected locally the doc. would print fine. We tried with and without the Printmanager, different drivers, including Generic text only and the latest Pserver. If we selected the LPT1OS2, or LPT2OS2 port in Windows then it would print text OK, but had problems with any graphics.
SOLUTION
After installing Winup5.zip he could print fine, text or graphics, from LPTx, LPT1OS2 or LPT2OS2.
FYI: "The Bindery Contains An Invalid Object..." NetWare
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "The Bindery Contains An Invalid Object..." NetWare v3.11
DOCUMENT ID#: FYI.P.5916
DATE: 24MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: WHOAMI and TLIST return an error "The Bindery Contains An Invalid Object..."
ISSUE/PROBLEM
When WHOAMI and TLIST are executed they return the following error "The bindery contains an invalid object in the trustee list". As well as when the users would login, Login would execute the personal login script for another user and %LOGIN_NAME, used in the system login script, would return a different user name than the actual user logging in. This issue is probably a corrupt bindery and possibly problems with the directory entry table.
SOLUTION
The customer ran BINDFIX, At this point they could login and access files in public directory, however executing TLIST would still give the above error message, "the bindery contains......." They scanned for a virus and did not find any. Ran VREPAIR to repair the Directory Entry Table. The DET is where the Trustee information is stored. Vrepair resolved this customers problem. However if Vrepair had not fixed it, they could have deleted the volume and then recreate it and then restored the files from a backup to build a new DET and resolve the problems with the trustee assignments.
FYI: "Two Subdirectories Reference The Same first directory block."
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Two Subdirectories Reference The Same first directory block."
DOCUMENT ID#: FYI.P.5911
DATE: 24MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Getting the error: "Two Subdirectories Reference The Same first directory block."
ISSUE/PROBLEM
The System Messages recommends running VREPAIR. However, a customer wanted to know more about the message.
SOLUTION
Here is an explanation. When a new directory is created in 3.11 NetWare, a 4Kbyte block (32 entries times 128 bytes/entry) is created. The new or parent directory has a pointer to the "first" 4Kbyte block. Only entries for files and/or subdirectories which belong to the parent directory will be found in the first 4Kbyte block or subsequent linked blocks. Another parent directory cannot (in theory) point to that 4Kbyte block as its first directory block.
Only an anomaly which causes corruption would result in two parent directories claiming the same first directory block. While VREPAIR may fix the problem, the cause could be any number of things. To mention a few:
Bad controller/HBA, drive, power glitches, problem with driver, firmware, bad mother board, bad memory.
FYI: Brequest in an OS/2 DOS Box
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest in an OS/2 DOS Box
DOCUMENT ID#: FYI.A.1853
DATE: 24MAR92
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.1x
SUPERSEDES: NA
SYMPTOM: IPXOpenSocket Failed
ISSUE/PROBLEM
BREQUEST.EXE will not run in an OS/2 DOS box on OS/2 version 1.3. There are incompatibilities between the SPX APIs in the DOS box and OS/2. If the program DOSBOX.EXE is run with BREQUEST.EXE then the error 'IPXOpenSocket Failed' will be returned. This is a known problem and cannot be corrected in the 1.3 NetWare OS/2 requester.
SOLUTION
NA
FYI: Lost Responses And Unknown Requests Statistics
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lost Responses And Unknown Requests Statistics
DOCUMENT ID#: FYI.P.5905
DATE: 23MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: All
SUPERSEDES: NA
SYMPTOM: Lost Responses And Unknown Requests Statistics
ISSUE/PROBLEM
According to documentation on pg 61 of the manual these two statistics should remain low. Where do you find these statistics and what is considered low?
SOLUTION
A customer can find these by doing an ALT-SHIFT-N. However the documentation is wrong. In reality, the numbers are useless.
FYI: Difficulty Running IBM Iclass With NetWare v2.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Difficulty Running IBM Iclass With NetWare v2.2
DOCUMENT ID#: FYI.P.5901
DATE: 23MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Stack overflow detected by kernal
ISSUE/PROBLEM
Getting the ABEND: Stack overflow detected by kernal when downing the server.
SOLUTION
This was resolved with 286DWN.ZIP. This increases the number of files that can be opened, from 24 to 240, when the down command is issued. Also make sure everyone is logged out before downing.
FYI: Is VIPX.386 Loaded?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Is VIPX.386 Loaded?
DOCUMENT ID#: FYI.A.2938
DATE: 23MAR92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: v1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In order to determine if the VIPX.386 driver for Windows is loaded into memory, issue an INT 2F call with the value 1684h in the AX register and and 0200h in the BX register. The function name is WindGetDeviceApiPoint(). If the return code in the ES:DI register is 0, then VIPX.386 driver is NOT loaded. Otherwise, VIPX.386 is loaded.
Example Borland C code:
asm{
push es
push di
push ax
push bx
mov ax, 0x1684
mov bx, 0x0200
int 2fh
mov ax, es
mov ESrc, ax
mov ax, di
mov DIrc, ax
pop ax
pop bx
pop di
pop es
}
What ES:DI represents here is the far call address for VIPX.
SOLUTION
NA
FYI: CAPTURE With No Parameters "Queue SFD Does Not Exist..."
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CAPTURE With No Parameters "Queue SFD Does Not Exist..."
DOCUMENT ID#: FYI.P.5863
DATE: 21MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: CAPTURE with no parameters gets error "Queue SFD Does Not Exist..."
ISSUE/PROBLEM
The user was trying to capture with no parameters and would get the message above. After checking out all PRINTCON.DAT files on the server, he mentioned something about spooling at the console.
SOLUTION
It turns out he had typed SPOOL 0 TO QUEUE HP at the console. In the print server manual it states that "These assignments set up default print queues for NPRINT and CAPTURE and support applications that make calls to printer numbers rather than to queues. What isn't mentioned in the manuals is the fact that this command can be entered into the AUTOEXEC.NCF in v3.11 and then will automatically set the default queue. So when the user types CAPTURE with no parameters this queue will be set as the queue being captured to. I had him take out the SPOOL command and all is well.
FYI: Using 3C501 Cards In NetWare v3.11 Workstations
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using 3C501 Cards In NetWare v3.11 Workstations
DOCUMENT ID#: FYI.P.5862
DATE: 21MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Using 3C501 Cards In NetWare v3.11 Workstations
ISSUE/PROBLEM
I have had questions on the issue of running 3c501 cards with NetWare v3.11.
SOLUTION
You can use them on the workstation if you use the odi drivers. They also asked about using it on a v3.11 file server. We do not recommend it. It is an old card and would be a very slow server NIC.
FYI: Epson Dot Matrix Problems Off LPT2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Epson Dot Matrix Problems Off LPT2
DOCUMENT ID#: FYI.P.5861
DATE: 21MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Having problems printing with LPT2
ISSUE/PROBLEM
Customer has a 386/33 clone and has an HP Laserjet running off LPT1 and seems to print fine. On LPT2 he has an Epson MX1000 Dot Matrix and it will print one line and then take 5 minutes to print a second.
SOLUTION
Had him go into PCONSOLE and set the interrupts to No and it printed just fine. Suggested that this will work fine but he still has an interrupt problem on LPT2.
FYI: Workstations Hang When WS Reboots. Locked DBF Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Workstations Hang When WS Reboots. Locked DBF Files
DOCUMENT ID#: FYI.P.5887
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Workstations would hang when a workstation was rebooted.
ISSUE/PROBLEM
The customer would have several workstations in a database application. He wanted to test TTS, so he would reboot one machine. He was surprised to see that the rest of the machines would hang until he loads IPX on the rebooted machine. He thought that there was a bug in our code or in FoxPro.
SOLUTION
The machines were hanging because the rebooted machine's connection still had 3 dbf files locked and when the other workstations would try to access them they would hang. We talked with engineering and they said that those locks wouldn't be released until a destroy connection was performed. So he could either reload IPX on the rebooted machine or wait until watchdog cleared the connection. The customer didn't like waiting 15 min. so we informed him about the set parameters for the watchdog.
A side note about TTS is that if a transaction hasn't completed when a destroy connection is performed the transaction is rolled back to its last known state. So the customer would have to have some way to take a picture of the data before and after the transaction to check TTS. Then when he rebooted the machine he could clear the workstation then compare the snapshot of the data before with the current data to verify the verification.
FYI: Server <Old Server Name> Is Unknown At This Time
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server <Old Server Name> Is Unknown At This Time
DOCUMENT ID#: FYI.P.5883
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Received the error: Server <old server name> is unknown at this time, when doing a CAPTURE with no server specified.
ISSUE/PROBLEM
After upgrading and changing the name of the server, if a CAPTURE was done without specifying a server name, the machine would beep four (4) times and then give the above error message.
SOLUTION
Found a PRINTCON.DAT file in each of 3 MAIL directories. After deleting those files the problem was gone. This could have also been resolved by updating the server name in those print jobs through PRINTCON.
FYI: Range Of Error Severity Levels. NetWare v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Range Of Error Severity Levels. NetWare v3.11
DOCUMENT ID#: FYI.P.5880
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What is the range of error severity levels at the console and what does each level mean?
SOLUTION
After cross-referencing a list from the NetWare 386 Support Routines book and a list from an Appnote in the NSE, I come up with the following list:
Level Severity Description
0 Informational Indicates attained thresholds; includes counters & gauges.
1 Warning Configuration errors and so on. No damage.
2 Recoverable Hot Fix disk and so on. Work-around made.
3 Critical Disk mirror failure and so on. Fix-up attempted.
4 Fatal/Abend Resource fatally affected; server shut down.
5 Operation-Aborted Operation cannot complete; cause unknown.
FYI: Trustee Assignments Not Transferring To Backup Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Trustee Assignments Not Transferring To Backup Server
DOCUMENT ID#: FYI.P.5879
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Trustee Assignments Not Transferring To Backup Server
ISSUE/PROBLEM
Customer backed up FS1 to tape. Renamed FS2 (the backup server) to FS1. Restored to FS2. The trustee assignments didn't transfer. We were not sure that EMSAVE 3.03 has a Directory Entry problem, or if it was just a fluke that no trustee's were transferred.
SOLUTION
Use NBACKUP to dos device. Choose to backup entire directory structure and for files to exclude *.*, and *. This will back up the trustee's only. Restore this to the new fs then backup and restore data by tape.
FYI: Error Writing New Transactional Backout File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error Writing New Transactional Backout File
DOCUMENT ID#: FYI.P.5877
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Getting error "ABEND: Error Writing New Transactional Backout File."
ISSUE/PROBLEM
Volume SYS: was near full when a custodian decided to pull the power on this server. Re-booting the server resulted in the above error. VREPAIR didn't help.
SOLUTION
Re-installed the NetWare v2.2 OS as nondedicated so that TTS could be disabled. After that the f/s came up and files could be deleted. Alternatively, On-Track has a utility that deletes files on a downed server.
FYI: Emerald Backup Showing Out Of Disk Space
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Emerald Backup Showing Out Of Disk Space
DOCUMENT ID#: FYI.P.5868
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Emerald backup showing: Out of disk space.
ISSUE/PROBLEM
Emerald backup showed: Out of disk space, when there was still space on the volume.
SOLUTION
Emerald said it is possible that when he was backing up he was running out of disk space because of the temporary files created and deleted. Needs to increase disk space. Or perhaps use the SET parameter: SET IMMEDIATE PURGE OF DELETED FILES = ON so those deleted files will not take up disk space.
FYI: Two SYS Volumes After Adding Drive To Existing Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Two SYS Volumes After Adding Drive To Existing Server
DOCUMENT ID#: FYI.P.5865
DATE: 20MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Two SYS volumes.
ISSUE/PROBLEM
Customer added a drive that had a 386 partition and Volume SYS, to an existing server. When the server booted there were two SYS volumes. Customer saw some errors and turned off the power.
SOLUTION
Customer removed the new Drive with volume sys on it and had to run VREPAIR to bring the server backup. Customer lost some data on existing volumes.
I set up a scenario like the one above. We wanted to see what would happen and what errors occurred. In this test case no data was lost and VREPAIR didn't need to be run. The following messages were displayed when mounting volume sys:
All mirrored partition on this system are synchronized.
Warning: Volume SYS has multiple sync definitions all
Definitions except 1 discarded.
Warning: Definitions for sysc 0 of volume SYS removed
In this case. Volume SYS should be unmounted and the new drive should have its partition deleted. Then volume sys can be mounted.
FYI: "Disk Error Press Return.." Printing NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Disk Error Press Return.." Printing NetWare Lite
DOCUMENT ID#: FYI.P.5897
DATE: 19MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Getting "Disk Error Press Return.." when printing under NetWare Lite
ISSUE/PROBLEM
The user had two client servers up and running. One had the printer attached and also had the applications on it. When a user on the other server would try to print from the application they would get the error: "Disk error press return to try again". When they pressed return they were put back at the f: prompt and then when they did a directory they couldn't see anything there. They would have to reboot the machines to Get up and running again. If they tried the same thing from the server with the application and the printer they would lose connection with the other server.
SOLUTION
We had him load the patches NWL004.ZIP but it had no affect. We then had him fax in his STARTNET.BAT NET.CFG AUTOEXEC.BAT and CONFIG.SYS. Everything was normal except he was using int 5 and I/O of 360. We had him change to 300 on the I/O and he is working.
FYI: Cannot See Files In System Directory After Arcserve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Cannot See Files In System Directory After Arcserve Backup
DOCUMENT ID#: FYI.P.5854
DATE: 19MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Users could not see any files in system directory unless they had supervisor rights.
ISSUE/PROBLEM
Customer upgraded from NetWare v2.15 to v3.11 and restored from Cheyenne Arcserve Backup. After the restore users could only see four or five files in the SYSTEM directory.
SOLUTION
Copied all files from the SYSTEM directory to a temporary directory then back again. All files could then be seen.
FYI: Unable to use two CNET 190 LAN Cards
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unable to use two CNET 190 LAN Cards
DOCUMENT ID#: FYI.P.5850
DATE: 19MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Unable to use two CNET LAN cards in the server.
ISSUE/PROBLEM
Customer has two CNET 190 LAN cards. Each card would work by itself, but if used together, users could only access one card.
SOLUTION
Obtained the latest server LAN driver from CNET. (No rev given.)
FYI: "Unable To Open Swap File" NSE Update CD ROM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Unable To Open Swap File" NSE Update CD ROM
DOCUMENT ID#: FYI.P.5845
DATE: 19MAR92
PRODUCT: NetWare Support Encyclopedia
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: Error: UNABLE TO OPEN SWAP FILE.
ISSUE/PROBLEM
This error would appear as customer tried to download selected files from NSE PRO update CD ROM.
SOLUTION
Customer's default directory was set to the CD ROM drive so Folio was trying to open a swap file on the CD ROM. He needed to change his 'Temp File Path', under Options -> User Defaults in Folio, to a directory where he had Read/Write rights. Another solution would be to map a search drive to the CD ROM, then execute the NSE from a directory where you have Read/Write rights.
FYI: "ScanProperty Returned Error Code 255..." LANSPOOL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "ScanProperty Returned Error Code 255..." LANSPOOL VAP
DOCUMENT ID#: FYI.P.5842
DATE: 19MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.15 , v3.11
SUPERSEDES: NA
SYMPTOM: ScanProperty returned error code 255. Bindery backup terminated.
ISSUE/PROBLEM
Doing upgrade from NetWare v2.15 to v3.11, transfer method. While transferring it would get to the point of doing the bindery and then end with the above error. BINDFIX did not help. We had the customer try backing up the bindery to a local hard drive and they got the same error, however when they pressed escape it revealed the object that was being transferred: "properties lanspool".
SOLUTION
Went into PCONSOLE to delete the print server and received an error 255. Tried it again and deleted the print server successfully. The UPGRADE was then able to complete without error.
FYI: Using xRestrict on a VIEW with a Restriction
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using xRestrict on a VIEW with a Restriction
DOCUMENT ID#: FYI.A.2108
DATE: 19MAR92
PRODUCT: XQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What happens when a restriction is placed on a recalled VIEW that was previously defined with a restriction? The answer to this question depends on which type of XQL functions is being used.
SOLUTION
Suppose a VIEW is created with a restriction defined as follows:
CREATE VIEW V_ZIP AS
SELECT * FROM PATIENTS
WHERE ZIP = "78759"
With XQL Manager level calls, the statement:
SELECT * FROM V_ZIP
WHERE Last^Name BEGINS WITH "A"
will result in the new restriction being appended to the existing restriction with an AND operator. Therefore, records will be retrieved that satisfy both restrictions (ZIP = "78759" AND Last^Name will begin with "A").
Using XQL Primitives, an application would perform an xRecall of the VIEW "V_ZIP" and then an xRestrict with the expression 'Last^Name BEGINS WITH "A"'. However, which iOption is specified on the xRestrict call will determine what the overall restriction on the view will be.
If the iOption specified in the xRestrict call is set to 1, then the new restriction will replace the previously defined restriction. If the iOption parameter is set to 0, then the new restriction will be appended to the previous restriction with an AND operator. In addition, you can also specify an iOption of 0 and precede the restriction statement with the OR operator (|| Last^Name BEGINS WITH "A"). This will cause the new restriction to be appended to the previous restriction with the OR operator.
FYI: Using REMOVE DOS within RCONSOLE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using REMOVE DOS within RCONSOLE
DOCUMENT ID#: FYI.P.5834
DATE: 18MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Using REMOVE DOS when in RCONSOLE hangs server.
ISSUE/PROBLEM
Customer is in RCONSOLE and wanted to use REMOVE DOS, DOWN, and EXIT so the server will warm boot. Server kept hanging when in RCONSOLE after the DOWN command was given and then could not give the EXIT command to complete the warm boot.
SOLUTION
Put the commands: REMOVE DOS, DOWN, and EXIT in a batch file in the SYSTEM directory and called it DOWNER.NCF. Running this batch file from RCONSOLE worked to down and reboot the server.
FYI: Backup Of Server From Client Hangs Machines. NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Backup Of Server From Client Hangs Machines. NetWare Lite
DOCUMENT ID#: FYI.P.5832
DATE: 18MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Backup of server from client hangs machines.
ISSUE/PROBLEM
Running DOS Backup command would hang all computers during the backup. They had a Server/Client node and two Client nodes.
He was using DR-DOS 6.0. They would hang all machines on the network, sometimes on the 2nd diskette, sometimes on the 40th diskette. He had this problem on all clients. They were backing up 40MB of data. He could backup the server successfully when running Backup on the Server/Client node.
SOLUTION
Switched to MS DOS 5.0 and had no problems.
We were unable to duplicate this problem in the lab.
FYI: Problems Seen With Larger Disks And NetWare 286
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problems Seen With Larger Disks And NetWare 286
DOCUMENT ID#: FYI.P.5829
DATE: 18MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.15, v2.2
SUPERSEDES: NA
SYMPTOM: Large drives not working with 286 NetWare.
ISSUE/PROBLEM
As larger disks (1.2 gigabytes +) have become more commonplace we see customers trying to use them with 286 NetWare. Their problems range from insufficient file service processes to problems with directory entries and any number of other problems.
SOLUTION
Customers need to understand some things about the design of 286 NetWare.
1. When 286 was developed some of the larger hard drives were 40 Mbyte. It was designed to support single devices about 10 times that size or 400 Mbytes. It can more easily manage multiple devices of 400 Mbytes than a single device which is much larger.
2. When we tested NetWare v2.15c the largest drives were 300 - 500 Mbytes. Even v2.2 had very little testing with drives larger than a gigabyte.
3. The 286 architecture will always pose problems because of the segmented memory.
A 1.2 GByte drive (in my opinion) pushes 286 NetWare to its limit. The formula to calculate TOTAL(max) directory entries, see FYI.P.3452, is given by:
T = (3066 - 20V - M) * 32 where V=number of volumes, M=total
megabytes.
Note that as the number of volumes increases and the drive size increases, the total number of directory entries will decrease. Since the formula applies to each disk, a customer would have more than twice as many directory entries if he used two 600 Mbyte drives instead of one 1.2 GByte drive.
When customers get to the 1.2 GByte drive size in 286 NetWare and they are having problems, they need to move on to 386 NetWare. Some v2.15c customers who have too few FSPs have used the PROCES.ARC patch to get more FSPs. However, that takes memory from DMP#1 and may shift rather than solve the problem. Again, the answer for the customer is 386 NetWare.
FYI: Different Options Available For Adaptec Disk Drivers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Different Options Available For Adaptec Disk Drivers
DOCUMENT ID#: FYI.P.5828
DATE: 18MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Choosing option 0 in INSTALL gets an error.
ISSUE/PROBLEM
Using an Adaptec AHA1540/1640 disk driver.
Choosing option 0 in INSTALL for the disk driver would give them an error message that they had chosen a mix of ISA bus and MCA bus.
SOLUTION
Customer Chose option 1 for the disk driver and no more problems. It turns out that option 0 is a microchannel option. Options 1-18 are for standard ISA and EISA. Options 19 and up are options for multiple drives on one controller. These later options are enhancements that make a single controller card act or look like it is multiple controllers.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
SYMPTOM: Interrupt Controller detected a lost hardware interrupt.
ISSUE/PROBLEM
After loading the 190A386.LAN driver for the CNET 190st 16-bit Arcnet card on the server, they would get the lost hardware interrupt error. Running Comcheck between two machines with CNET's workstation driver would also fail.
SOLUTION
Had him use the Trxnet drivers at both the server and the workstations, and everything seems to work fine.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
SYMPTOM: "ABEND: Error Adding Generic SCSI" when installing v2.2.
ISSUE/PROBLEM
Using a Maxtor 7120S SCSI drive with a Novell DCB.
During the installation of v2.2, the customer would get the error above. All hardware was verified as being setup properly.
SOLUTION
In pursuing this escalation, we checked with IMSP to see whether or not this new drive had been certified. It had just passed certification with an Adaptec 1540 controller since Maxtor had submitted it with that controller. IMSP suggested that we try choosing CDC WREN III HALF-HEIGHT instead of Generic SCSI, but it didn't work. Customer chose to use an Always IN2000 controller and it worked.
FYI: Problem with WATCOM C/386 v9.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with WATCOM C/386 v9.0
DOCUMENT ID#: FYI.A.3141
DATE: 18MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Invalid code generation
ISSUE/PROBLEM
There is a bug in the WATCOM C/386 v9.0 compiler that causes it to generate invalid code when optimizing. In the following example, TestA() works, but TestB() and TestC() both fail. All of them work if the example is compiled with C/386 v8.5.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Patch for CLib v3.11 readdir() Problem
DOCUMENT ID#: FYI.A.3140
DATE: 18MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Server abends when readdir() made to remote 2.x server
ISSUE/PROBLEM
Calling the function readdir() against a remote 2.x server abends the local server under certain circumstances. This can be reproduced by creating a directory path with many levels totaling 130 bytes.
SOLUTION
A patch, called CLIBP002.NLM is available which corrects this problem. It is a PATCHMAN-Compatible patch, and is on NovDev, in Library 7, under the name CLP002.ZIP. Developers can distribute this patch to their end-users, if they are using readdir() to remote 2.x servers in their applications. This patch also requires PATCH311.NLM, available in NOVLIB Library 4, under the name PAT311.ZIP.
FYI: Wildcards Passed to access()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Wildcards Passed to access()
DOCUMENT ID#: FYI.A.1652
DATE: 18MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The function, access(), works with wildcards.
SOLUTION
Although access() is not an ANSI standard function, it is a standard function for DOS and UNIX compilers. The implementation under DOS for the major compiler manufacturers is to allow wildcards in the file specification. This is also true for the CLIB implementation. For example,
access("\\a*.*", ACCESS_RD);
will return successfully if any file exists in the root of the current directory starting with the letter 'A' and you have access to it.
FYI: Unable To Print From Postscript With PRFIX Loaded
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unable To Print From Postscript With PRFIX Loaded
DOCUMENT ID#: FYI.P.5817
DATE: 17MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Garbage printing from Postscript with PRFIX loaded
ISSUE/PROBLEM
NetWare v2.2 with an HPIIp LaserJet printer that needed run in PCL and PS modes. He had a PS cartridge for the printer that he had installed and had setup a print device in the Printdef utility. When he attempted to run a job from his Microsoft Word application in postscript mode, it would print garbage.
SOLUTION
This customer had upgraded from NetWare v2.0a. The batch file at the workstation that set up their printing was loading the file PRFIX which was a patch for 2.0a printing. Once he removed the PRFIX from his batch file the printer would print well in postscript mode.
FYI: Unable To Maintain Connections To AS/400 And Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unable To Maintain Connections To AS/400 And Server
DOCUMENT ID#: FYI.P.5804
DATE: 17MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Customer could not maintain simultaneous connections to AS/400 and NetWare Server.
ISSUE/PROBLEM
Using IBM Lan Support 1.2, with the LANSUP ODI driver. He is using Irmatrac Token-Ring boards from DCA and the TOK380.DCA driver (version 1.11). Also using AS/400 PC Support v2.0. He could start a session to the AS/400, but if he tried to attach to the file server, the AS/400 connection would be lost. We found that all was well until he loaded LANSUP.COM.
SOLUTION
Contacted DCA and found that they now have a new TOK380.DCA driver (v1.2). The solved the customers problem.
FYI: "Extended Error 59" NOTEBOOK.EXE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
When customer launched notebook.exe from more than one client they got the above error. They have three clients, and 1 client/server.
SOLUTION
Increased client tasks from 10 to 20, and it worked. This is done by Going into the Net Utility, Select Supervisor Network, Server Configuration. The client tasks are on the right side of the display. Change the future value to the desired number. Then reboot for the change to take effect.
FYI: LogPhysicalRecord Does Not Wait
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LogPhysicalRecord Does Not Wait
DOCUMENT ID#: FYI.A.3359
DATE: 17MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 20b
SUPERSEDES: NA
SYMPTOM: Immediate return even though timeout specified if record locked
ISSUE/PROBLEM
The LogPhysicalRecord function will not wait the specified timeout if it tries to access a record previously locked by itself or another NLM. The problem is connection-oriented and does not appear if the NLM logs into a connection, rather than using the default connection zero.
SOLUTION
The current work-around is to login to a separate connection for each NLM. This will allow multiple NLMs to use LogPhysicalRecord against the same record and wait the specified timeout.
FYI: QMS JobType
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: QMS JobType
DOCUMENT ID#: FYI.A.2659
DATE: 17MAR92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: JobType in JobStruct needs to be IntSwapped
ISSUE/PROBLEM
In the C-Interface for Windows, the JobType field in the JobStruct structure is not being swapped with the IntSwap() function. As an example, setting JobType to the value one will force the type to actually become 256, which is incorrect.
SOLUTION
Use the IntSwap() function on the JobType value.
FYI: Problems with VIPX 1.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problems with VIPX 1.11
DOCUMENT ID#: FYI.A.2658
DATE: 17MAR92
PRODUCT: NetWare C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: IPXCloseSocket Problems and not Cancelling ECBs
ISSUE/PROBLEM
The IPXCloseSocket function in the C-Interface for Windows 1.22 does not cancel the ECBs as is documented.
A workaround for VIPX 1.10 and the NWIPXSPX.DLL 1.30, was to explictly cancel each ECB that was still posted using the IPXCancelEvent function. This worked fine until the VIPX 1.11 and NWIPXSPX.DLL 1.31 was introduced. The IPXCancelEvent for this version returns error 0xF9 in the ECB's status flag field.
SOLUTION
The recommendation at this time is to use the VIPX 1.10 and the NWIPXSPX.DLL 1.30.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
Apparently, if the spooler is busy printing, and the non-dedicated workstation is running an application or waiting for keyboard input, the spooler will slow down considerably, but still functions.
SOLUTION
Using the DOS int 28h Idler interrupt will permit the spooler to do its work at a normal pace. Essentially, the spooler is not using the protected mode switch that the non-dedicated workstation usually uses, thus the spooler is dependent on the application to permit it to actually run.
FYI: Server Abends With NMI Parity.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server Abends With NMI Parity.
DOCUMENT ID#: FYI.P.5794
DATE: 16MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Server abending with an NMI parity generated by I/O check
ISSUE/PROBLEM
Compaq 386/33, NetWare v3.11 and Proteon cards cause this problem with the server. Took all the hardware to an AST and it was fine. Took the v3.11 back to v3.10 and everything was fine.
SOLUTION
This customer shipped his Compaq off to Compaq and they tested this and could get it to happen consistently with NetWare v3.11, specifically the Compaq 386/33, and any Proteon card (they tried both the 1308 and the pro-net4). This scenario doesn't seem to work so avoid it.
FYI: "Cannot Find BASRUN20.EXE..." Genesis Program, Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Cannot Find BASRUN20.EXE..." Genesis Program, Lite
DOCUMENT ID#: FYI.P.5792
DATE: 16MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Error:"cannot find basrun20.exe Enter a new path specification:"
ISSUE/PROBLEM
The customer could get 2 clients into their genesis program but the third machine would give them the error "cannot find basrun20.exe Enter a new path specification:" with the NWL004 loaded.
SOLUTION
Increased the number of client tasks and they were able to get all five machines into the network.
FYI: Lotus Prints To Local Instead Of Captured Printer
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lotus Prints To Local Instead Of Captured Printer
DOCUMENT ID#: FYI.P.5791
DATE: 16MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Printing from Lotus would go to local printer instead of captured printer.
ISSUE/PROBLEM
NetWare Lite, DOS 5.0 and printing from Lotus. Jobs would print to the local printer instead of to a captured printer.
SOLUTION
In Lotus do slash -> worksheet -> global -> default -> printer -> interface -> and select 5 (for DOS device LPT1) and that took care of it.
FYI: WS Reboots When Print Job Is Sent.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WS Reboots When Print Job Is Sent.
DOCUMENT ID#: FYI.P.5789
DATE: 16MAR92
PRODUCT: NetWare
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: Workstation running RPRINTER reboots itself when a print job is sent to it
ISSUE/PROBLEM
Customer is trying to run:
(1) Real World Accounting Software (compiled using Microfocus's Cobol compiler)
(2) XM (Microfocus's extended memory manager)
(3) RPRINTER (w/ a printer attached on the LPT port)
All on the same workstation. Whenever he tries to print a job to the workstation it would reboot itself. However, if he does not load XM it prints fine.
SOLUTION
He had to set the following environment variable in his AUTOEXEC.BAT:
SET XM=+jkqr
XM places the program into protected mode and the settings above involve transmitting the protected mode interrupts to real mode interrupts.
J = transmits IRQ 1 (keyboard interrupt)
K = transmits IRQ 16
Q = transmits IRQs 10,17,1a
R = transmits IRQs 0-15 (except IRQ 1 )
FYI: Abend: Disk Controller Channel 0... v2.2 INSTALL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Abend: Disk Controller Channel 0... v2.2 INSTALL
DOCUMENT ID#: FYI.P.5787
DATE: 16MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: "Abend: disk controller channel 0 reset error"
ISSUE/PROBLEM
Received this error consistently during INSTALL after it was completed linking and configuring (from the first screen during installation) and right as it was going to bring up the Ztest screen. This was when using the IDE driver from IDE286.ZIP. ISADISK wouldn't work at all because it was a user definable drive type.
SOLUTION
Used ISAREM.ZIP which worked.
FYI: "DOS Create Returned Error 3". Defining Printer 0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "DOS Create Returned Error 3". Defining Printer 0
DOCUMENT ID#: FYI.P.5786
DATE: 16MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: DOS create returned error 3 Description: System failed to create the file system\00120073\print.000
ISSUE/PROBLEM
Customer was trying to define printer 0 in PCONSOLE under a printserver called PSERVER. When he hit <ESC> to save the printer configuration the error above was displayed. The shell was current and SHELL.CFG did not have anything out of the ordinary in it.
SOLUTION
Deleted the printserver and all the queues. Made sure that there were no number directories left by PCONSOLE in the system subdirectory. Ran BINDFIX. Recreated the printserver and they were able to define a printer.
FYI: Long Function Names
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Long Function Names
DOCUMENT ID#: FYI.A.3835
DATE: 16MAR92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Long Names cause Internal Compiler Error 5 in WATCOM v8.5
ISSUE/PROBLEM
If an application's function names are more than 80 characters long, WATCOM C/386 Compiler v8.5 issues an Error 5: Internal Compiler Error, and the program is not compiled. In the 9.0 version of the compiler, function names can be greater than 80 characters but only if the program is not compiled with any debugging information (without /d2).
SOLUTION
Right now there is no solution for this problem.
FYI: GetBroadcastMessage Code Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetBroadcastMessage Code Error
DOCUMENT ID#: FYI.A.3358
DATE: 16MAR92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Workstation Hang
ISSUE/PROBLEM
The NetWare C Interface - DOS, version 1.20, GetBroadcastMessage function only expects messages of 55 bytes or less to be returned. However, broadcast messages up to 58 bytes may be returned from the server console. A long message corrupts system memory and may cause a work station hang.
SOLUTION
Modify the source to the GetBroadcastMessage function in the BRODCAST.C source files as follows:
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetBroadcastMessage Documentation Error
DOCUMENT ID#: FYI.A.3357
DATE: 16MAR92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: Workstation hang.
ISSUE/PROBLEM
The NetWare System Calls - DOS, version 1.00, states that the maximum length that can be returned for any given message is 55 bytes. This is incorrect. The maximum lenth that can be returned is 58 bytes, including the NULL terminator.
SOLUTION
Increase the maximum message reply size to 58 bytes. This increases the overall reply buffer size to 61 bytes.
FYI: No Problems With NetWare For VMS And VMS 5.5
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: No Problems With NetWare For VMS And VMS 5.5
DOCUMENT ID#: FYI.P.5763
DATE: 13MAR92
PRODUCT: NetWare for VMS
PRODUCT VERSION: v2.1 r3.01,v2.1 r4.01
SUPERSEDES: NA
SYMPTOM: Compatibility with VMS 5.5
ISSUE/PROBLEM
Several customers have called asking if there are any known problems with NetWare for VMS and DECs latest release of VMS v5.5.
SOLUTION
As of 3/13/92 we have not seen any compatibility problems with VMS v5.5 and NetWare for VMS.
FYI: NetWare For VMS INSTALL Not Accepting Controller
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare For VMS INSTALL Not Accepting Controller Types
DOCUMENT ID#: FYI.P.5761
DATE: 13MAR92
PRODUCT: NetWare for VMS
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: Customers installing NetWare for VMS not seeing their correct VAX ethernet controller type and ethernet device type.
ISSUE/PROBLEM
During the install process for NetWare for VMS the user is prompted to enter their VAX ethernet controller type (DEQNA etc.) and also the device type (XQA etc.). However when they put in their controller type the install utility will not accept it.
SOLUTION
There are newer DEC ethernet controllers as well as different ethernet controller type and ethernet device type combinations that NetWare for VMS does not understand. It is possible to make the necessary changes during the install, or they can make the change after the install is completed by following the directions in FYI.P.4937.
The controller type selection (DEQNA etc.) really doesn't matter so the user can choose any controller types that install has listed. The device type (XQA etc.) is the one they need to make sure they choose the correct type for their controller. NetWare for VMS install does not check what device type is entered against what types it knows about. Their VAX support person should be able to tell them what the correct device type is for their controller. The following is a list of DEC VAX ethernet controllers and their device types/names:
DEBNT for BI based VAX
DEBNA for BI based VAX
DEBNI for BI based VAX
DEUNA for UNIBUS based VAX
DELUA for UNIBUS based VAX
DEQNA for QBUS based micro VAX
DELQA for QBUS based micro VAX
DESQA for QBUS based micro VAX
DESQA for VAX 4000
DESVA for micro VAX 2000
DEMNA for VAX 9000
DEBNTs use device names ETA, ETB ...
DEBNAs use device names ETA, ETB ...
DEBNIs use device names ETA, ETB ...
DEUNAs use device names XEA, XEB ...
DELUAs use device names XEA, XEB ...
DEQNAs use device names XQA, XQB ...
DELQAs use device names XQA, XQB ...
DESQAs use device names XQA, XQB ...
DESQAs use device names EZA, EZB ...
DESVAs use device names ESA, ESB ...
DEMNAs use device names EXA, EXB ...
Note: the third letter in the device name specifies which ethernet card ie ETA is the first ethernet controller, ETB is the second ethernet controller etc.
FYI: "No Servers Found On Network".
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "No Servers Found On Network".
DOCUMENT ID#: FYI.P.5760
DATE: 13MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Message "No servers found on network" upon running client on a machine.
ISSUE/PROBLEM
Customer got message "No servers found on network" upon running client on a machine. Verify connections revealed that the cards were not talking to each other. If he removed the Device=EMM386.EXE line from CONFIG.SYS, the problem went away.
SOLUTION
The WD NIC uses shared RAM--in this case D000. When using EMM386 you must exclude the shared RAM address used by the NIC. Customer was not excluding D000. He changed his CONFIG.SYS to C:\DOS\EMM386 64 RAM X=D000-D400 and the cards started talking. The "X=" line excludes the shared RAM address.
FYI: Unable To See External Bernoulli Drives. NetWare
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unable To See External Bernoulli Drives. NetWare Lite
DOCUMENT ID#: FYI.P.5756
DATE: 13MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Unable To See External Bernoulli Drives.
ISSUE/PROBLEM
Customer installed server/client on a machine with an internal drive (C:) and an external Bernoulli with dual drives (D: and E: as configured by the RCD.SYS driver). When running server to setup the drives he could not see the Bernoulli drives.
SOLUTION
Needed the latest Bernoulli driver v7.02
FYI: Brequest Hangs If No Network Connection Established
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest Hangs If No Network Connection Established
DOCUMENT ID#: FYI.A.1746
DATE: 13MAR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Workstation hangs when loading Brequest
ISSUE/PROBLEM
Attempting to load BREQUEST.EXE v5.16 on a workstation that does not have a network connection will hang the workstation.
SOLUTION
Make sure the network shell is loaded before attempting to load Brequest. When loading Brequest from the AUTOEXEC.BAT file, check the DOS ERRORLEVEL after loading the network shell. If it is set, do not load Brequest. For example:
SET B_LOAD=YES
IPX
NETX
IF ERRORLEVEL 1 SET B_LOAD=NO
...
IF %B_LOAD% == YES BREQUEST /D:8192
SET B_LOAD=
...
FYI: Shift Key Sticking, NetWare Lite v1.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Shift Key Sticking, NetWare Lite v1.0
DOCUMENT ID#: FYI.P.5780
DATE: 12MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Keyboard Shift Key sticking
ISSUE/PROBLEM
The shift key "sticks" or turns on and remains that way (similar to caps lock).One situation was when a client was putting some heavy disk access on the server, the server's shift key would stick. It could only be turned off by pressing the shift key. It is similar to the caps lock being on.
SOLUTION
Put INSTALL=C:\DOS\KEYB.COM US,,C:DOS\KEYBOARD.SYS in the CONFIG.SYS fixes the problem.
FYI: Keyboard Problems In NetWare Lite Running Lotus
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Keyboard Problems In NetWare Lite Running Lotus
DOCUMENT ID#: FYI.P.5774
DATE: 12MAR92
PRODUCT: NetWare
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Numbers appear when pressing the cursor arrows, not on the number pad.
ISSUE/PROBLEM
The customer was using Lotus 2.3 and the keyboard would randomly insert a 2 when he was pressing the down arrow key (THE ONE NOT ON THE NUMBER PAD). It would happen worse when the turbo button was off, and when he was in WYSIWYG. About every 20 lines when moving down the screen the cursor would pause and insert a 2, or when pressing the up arrow key, the number 8 would appear. The problem did not exist unless the numlock key was on. We tried removing TSR's, applying NWL004.zip to no avail.
SOLUTION
Inputing the following line in the CONFIG.SYS file solved the problem. "install=c:\dos\keyb.com US,,c:\dos\keyboard.sys"
Note:The keyb.com command configures the keyboard for a specific language. In the indicated DOS command it forces the country to the US. The keyboard.sys file according to the DOS 5.0 manual specifies the location and name of the keyboard definition file. The DEFAULT keyboard info sometimes gets loaded wrong. Loading the keyboard driver in the CONFIG.SYS file is the fix.
FYI: Slow Backup With Archive Quickstream Software
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Slow Backup With Archive Quickstream Software
DOCUMENT ID#: FYI.P.5771
DATE: 12MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Backup is too slow (3 hours to backup 30 MB)
ISSUE/PROBLEM
Customer has a Compaq 386/16 running as a nondedicated fileserver. He has an Adaptec 1542b. The internal connector is servicing 1 HD (200 SCSI) and the external connector is not being used. The floppy connector is servicing one floppy device and an ARCHIVE qS80 backup unit. Apparently the backup unit is software addressable through the floppy controller. They are using ARCHIVE's Quickstream software in nondedicated mode.
When they backup 30 MB of data it takes 3 hours which is unusually long. Under ELS II v2.15c (using a separate controller for the hard drive and the floppy controller) it only took 45 minutes. We checked the following:
* Termination on the HBA
* SCSI ID on drive (the backup unit did not have a
ID because it was using the floppy connector).
* Driver for the 1542b (ASWNOVL.OBJ 5/90 11192 bytes)
SOLUTION
We contacted Maynard tech support (800-227-6296 they also support Archive) and they suggested adding the following device in his CONFIG.SYS:
device=aspi4dos.sys /n07
The file aspi4dos.sys is on Adaptec's Utility diskette.
The parameter /n07 sets the dma transfer speed to .7 and it only affects applications that need it. After he added this the backup performance improved.
FYI: Corrupt WP.SET File Causing "Disk Error 51"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
Customer has ten workstations on an Arcnet network. The problem affects one machine (FS1).
Reboot any machine on the network, (FS1) is running WordPerfect when the reboot occurs. Any function key on (FS1) is pressed and immediately gets a Disk 51 error message. Retry will clear the message for a split second, but the same message reappears immediately. The message can be permanently cleared by pressing Ctrl-Shift-F1 but the document being worked on in WP is deleted.
If however the problem is "waited out" the error message will go away (by pressing retry) in six minutes exactly. No matter how many times retry is hit before six minutes elapse, the message returns to the screen. Hitting cancel produces the same result.
SOLUTION
The WPX}.SET file was corrupt. Customer deleted the .SET file and the problem went away.
FYI: Specifying Server Name And Volume Name in BLOG.CFG
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Specifying Server Name And Volume Name in BLOG.CFG
DOCUMENT ID#: FYI.A.3015
DATE: 12MAR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: BROLLFWD error: Cannot find log file
ISSUE/PROBLEM
If the BLOG.CFG file contains ServerName\VolumeName to specify the path to the log file used by BROLLFWD, BROLLFWD will return the error message "Cannot find log file". For example, if BLOG.CFG contains:
BROLLFWD will not be able to find the log file. However, if a drive letter is specified instead of ServerName and VolumeName, BROLLFWD works correctly.
SOLUTION
Use a drive letter to specify the path to the log file.
FYI: Unable To Clear Connections In MONITOR.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unable To Clear Connections In MONITOR.
DOCUMENT ID#: FYI.P.5752
DATE: 11MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Couldn't clear connections in monitor and also work stations were losing connection.
ISSUE/PROBLEM
Customer had a 3c523 in PS/2 and was having problems clearing connections in MONITOR and keeping his work stations up.
SOLUTION
PS2OPT.ZIP from Novell and 3C523.ZIP from 3COM with the latest model of the 3c523 twisted pair board.
FYI: Watchdog Dropping Connections.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watchdog Dropping Connections.
DOCUMENT ID#: FYI.P.5749
DATE: 11MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Loosing connection to the network.
ISSUE/PROBLEM
Workstations losing connections because of watchdog.
SOLUTION
It was actually the other way around. Workstations were hanging first and THEN the watchdog process was just doing what it was supposed to do and deleting them. They were running Blue Max and Carousel software on the workstation and seems like they had a conflict. Took these two programs out of the picture and problems went away.
FYI: Printing Difficulty With PeachTree Software
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Printing Difficulty With PeachTree Software
DOCUMENT ID#: FYI.P.5746
DATE: 11MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Peachtree Accounting Software printing garbage or not printing at all.
ISSUE/PROBLEM
In the Typewriter mode of PeachTree it would ether not print or print garbage etc. In this mode the user can type on the keyboard and the characters will print on the printer.
SOLUTION
NWL004.zip fixed the problem.
FYI: Problems Installing MHS On Volume Other Than SYS:
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problems Installing MHS On Volume Other Than SYS:
DOCUMENT ID#: FYI.P.5745
DATE: 11MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Unable to Install MHS
ISSUE/PROBLEM
Customer was unable to get MHS to install on his NetWare v3.11 file server. Error message was indicating there weren't enough directory entries.
SOLUTION
MHS looks to see if there are a minimum of some 200 directory entries before it will install. Normally this isn't an issue as most of the time, users install MHS on the SYS Volume. NetWare v3.11 by default will allocate blocks of 32 entries for each directory. An empty Volume will by default still contain 2 directories meaning it will have 64 directory entries. MHS wouldn't install because his empty Volumes only had 64 directory entries.
He was able to work around this by copying some directories and files (dummys) to this Volume and then deleting them. Deleting files and removing directories that have been allocated won't cause the directory entries to be dealocated. After copying and deleting these files and directories to this Volume, he was able to install MHS no problem.
FYI: Watchdog Clearing Connections When WS Loads Shell
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watchdog Clearing Connections When WS Loads Shell
DOCUMENT ID#: FYI.P.5744
DATE: 11MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Connection is cleared.
ISSUE/PROBLEM
Watchdog clearing connections when the workstation has the shell loaded.
SOLUTION
Make sure the "Delay Before First Watchdog Packet" is larger than the "Delay Between Watchdog Packet". It is recommended that the "Delay Before First Watchdog Packet" is twice as large as the "Delay Between Watchdog Packet". Leaving the watchdog parameters at default is usually the best solution .
FYI: Soft Booting Not Releasing Rprinter Configuration
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Soft Booting Not Releasing Rprinter Configuration
Using DOS 3.3 and the RPRINTER that ships with v3.11/v2.2, when soft booting the work station, the printer configuration is not released on the PSERVER.
SOLUTION
One solution is to unload the VAP or NLM. In this case just cold booting the work station took care of the proper release of the printer configuration.
Note:There is a timing issue with the print server not releasing the connection in the time to soft boot. The cold boot took enough time to have the connection released. The other way to release the connection is to do "rprinter xxxxxx # -r" where xxxxxx is the pserver name, # is the printer number and -r removes the connection.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
SYMPTOM: Errors with bindery calls (i.e. logging in, trustees, etc.)
ISSUE/PROBLEM
If you use utilities such as SYSCON, PCONSOLE, MAKEUSER or any utility that manipulates the bindery that comes from another version of NetWare it could possibly corrupt the NetWare for VMS bindery. This has been observed with utilities from NetWare v3.x.
SOLUTION
The only thing that you can do once you have a corrupt bindery with NetWare for VMS is to restore a backup of your bindery. There is no Bindfix utility.If you do not have a backup of the bindery you can restore a clean bindery from the NetWare for VMS installation tape. To restore the bindery do the following. The $ is the VMS prompt. The tape drive is assumed to be MUA0. Have the customer use their tape drive in place of MUA0.
f a customer wants to know how to backup their bindery with NetWare for VMS have them execute the following command procedure with a parameter of AUTO.
$ @NWVMS$SPECIFIC:NW_SRV_DBS.COM AUTO
FYI: "Send ECB Was Re-Used RPL Halted"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Send ECB Was Re-Used RPL Halted"
DOCUMENT ID#: FYI.P.5721
DATE: 09MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Error "send ecb was reused RPL halted" when attempting to remote boot
ISSUE/PROBLEM
Customer received error "send ecb was reused RPL halted" when attempting to remote boot on NetWare v3.11 server using the RPL.NLM dated 12/3/91 (from RPLft.zip, which can be obtained from Novell tech support). If the work station was rebooted after this error then remote boot proceeded with no problem.
SOLUTION
Used NE2.LAN from NE386.ZIP (11-11-91) and error disappeared.
FYI: Remote Boot Difficulty After v2.2 Upgrade
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Remote Boot Difficulty After v2.2 Upgrade
DOCUMENT ID#: FYI.P.5719
DATE: 09MAR92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: After upgrade from NetWare v2.15a to v2.2 workstations trying to remote boot getting error reading boot image.
ISSUE/PROBLEM
After the upgrade the Samsung and Hyundai diskless workstations would try to remote boot and after loading netx they would error out with an error something like unable to read from boot image. Customer tried different versions of DOS the latest NE1000 driver, both 3.1 IPX and 3.22 Netx as well as older NE1000 drivers, IPX and NETx versions all with the same result. They had contacted Hyundai and Samsung and were running the BIOS and Remote versions that they both recommend to work with v2.15 and v2.2.
SOLUTION
They finally tried the ODI drivers and are now able to remote boot fine now.
FYI: NetWare Lite, Quattro Pro Printing With Corruption
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Lite, Quattro Pro Printing With Corruption
DOCUMENT ID#: FYI.P.5718
DATE: 09MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: NetWare Lite and Quattro Pro Printing with corruption
ISSUE/PROBLEM
Corruption problems when printing a simple spreadsheet with three fonts. We corrected I/O and cache usage and the problem was reduced but still continued. Solution
By changing the printer port from DOS parallel 1 to DOS LPT1 in Quattro, the problem disappeared.
Addtl Info: Lotus 123 also has a DOS parallel 1 option but it does not seem to have this type of serious corruption that Quattro Pro 3.0 has.
FYI: "Unable To Write To VOL$LOG.ERR..." NetWare v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Unable To Write To VOL$LOG.ERR..." NetWare v3.11
DOCUMENT ID#: FYI.P.5714
DATE: 06MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: "Unable To Write To VOL$LOG.ERR..."
ISSUE/PROBLEM
Upon bringing up the server which had two volumes volume SYS would mount fine, but was getting the error: Unable to write to VOL$LOG.ERR. Then the volume was dismounted and the device deactivated.
His file VOL$LOG.ERR had some how become corrupted. VREPAIR reported no errors. IBM DIAGNOSTICS found data integrity problems on two blocks.
SOLUTION
Used a disk editor (Norton's) to rename the file and the server no longer had a problem mounting. No data was lost.
Note: VOL$LOG.ERR obviously keeps track of volume errors, but also logs each mount and dismount occurrence. The OS recreated the file when it couldn't find one.
FYI: NetWare Lite Problems With Norton Ncache.exe
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Lite Problems With Norton Ncache.exe
DOCUMENT ID#: FYI.P.5715
DATE: 05MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Client workstation hangs.
ISSUE/PROBLEM
Customer had a Server/Client and a Client ws using HP 8bit 10baseT adapters. When ever they would access the server/client from the client only workstation it would process for a few seconds and then appear to hang. If a simple [Enter] or directory [dir] was done on the server/client the client only workstation would continue (ie the problem of the client only station appearing to hang only happened when the server/client was idle).
SOLUTION
Renamed the CONFIG.SYS and AUTOEXEC.BAT on the server/client and the problem went away. After REMing out every command and putting them back one at a time we found that it was Norton's Ncache. He was loading it with Dos 5.0's loadhigh command. We changed the command to Ncache /usehidos=yes (which will load it high).
Be extremely careful in using caching programs. Deferred writes MUST be turned off so server.exe and the cache won't bump heads.
If you are running NetWare Lite with Norton Cache you need to disable deferred writes. When you are running NetWare Lite and norton cache there are times when they are put to sleep. They can be activated either by int 15 or by a clock tick. Norton cache uses both ways. When norton cache wakes up he just starts doing his thing without seeing what NetWare Lite is doing.
There is an undocumented DOS call to check DOS critical areas. NetWare Lite v1.0 and v1.1 use this dos call to see if someone else is doing something critical before going about its business. Norton says that they will implement this DOS call in a future version of Norton Cache. As a side note, the cache that will ship with the next version of NetWare Lite does this checking already.
FYI: "Network Load Failure" Dbase IV
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Network Load Failure" Dbase IV
DOCUMENT ID#: FYI.P.5698
DATE: 05MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: DOS 5.0 users get "NETWORK LOAD FAILURE" running Dbase IV when their current drive points to any volume other than that which holds Dbase.
ISSUE/PROBLEM
File server with Dbase IV loaded on one volume of multiple volumes. Users have DOS 5.0 and other versions. All have search drives mapped to the Dbase directory. Those users with DOS 5.0 get "NETWORK LOAD FAILURE" when trying to run Dbase when their current drive points to any volume other than that which holds Dbase. All users with other versions of DOS are fine. Customer created a test .BAT file and put it into the same directory as the application and it runs just fine from any drive letter, any version of DOS.
SOLUTION
Through the Borland TSA, we found that this is a known issue. Borland said to use the command "DBASE #DF=X" to run the application, where X is the drive letter pointing to the application directory, which works.
FYI: The DacEasy Configuration To Work With NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The DacEasy Configuration To Work With NetWare Lite
DOCUMENT ID#: FYI.P.5691
DATE: 05MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In talking with the technicians at DacEasy there is a special setup needed to get DacEasy to work consistently with NetWare Lite.
SOLUTION
There is a file that needs to be deleted in the dacEasy Software.
NOTE: The DacEasy program needs to already be installed.
1- cd\dea4\dea4base
2- del dea4cid.db
3- cd.. back to dea4 and type dea4 to start the program
4- The program will then ask if you are a new user or upgrading from an earlier version. You need to say that you are a new user.
5- The system will then ask for a company id. (you can run several different companies accounting information at the same time). You will then need to input the path of the data files.
Another bit if information. DacEasy needs tons of conventional memory to run well. It needs well above 512k, exact amount not known. The impression is that it had many random problems if there was not enough memory to run. Different modules of DacEasy needed more memory than others.
It may also be necessary to increase the files and locks parameters on the SHARE command. And in addition, files may need to be increased at other clients.
FYI: Problem loading 2 frame types on NE3200.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem loading 2 frame types on NE3200.
DOCUMENT ID#: FYI.P.5689
DATE: 05MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Problem loading 2 frame types on NE3200 in Compaq System Pro.
ISSUE/PROBLEM
File Server is a Compaq Systempro with one NE3200 with 802.2 and 802.3 frame types needing to be loaded. Loading the 802.3 wouldn't allow the 802.2 frame type to be loaded and vice versa.
SOLUTION
Moved the NE3200 in the Systempro from slot 5 (which should work) to slot 2. After doing this the 2 frame types can be loaded on the card.
FYI: Running Enable Software In NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Running Enable Software In NetWare Lite
DOCUMENT ID#: FYI.P.5687
DATE: 05MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: When Enable is run from a mapped drive, the software looks for a diskette in drive B:. It runs fine from the physical C:
ISSUE/PROBLEM
Enable uses an environment parameter that identifies the paths where Enable can find the necessary files.
SOLUTION
By entering: ENABLE (E:\EN300,,,,F:) the Enable software will find program files on drive E: and data files on drive F:.
FYI: VMSPT3.TXT WordPerfect & Lotus files being corrupt
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: VMSPT3.TXT WordPerfect & Lotus files being corrupt
DOCUMENT ID#: FYI.P.5681
DATE: 05MAR92
PRODUCT: NetWare for VMS
PRODUCT VERSION: v2.01, r3.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
VMS patch 3 is a patch for NetWare for VMS v2.1 r3.01 and v2.1 r4.01 to resolve problems saving files from Wordperfect and Lotus where the file would end up as a 0 byte file and the contents would be lost. This patch is recommended for anyone with NetWare for VMS issues regardless of whether or not they have seen the WP or Lotus problem. It is available on Netwire file name VMSPT3.TXT.
FYI: maxECBs in Windows IPXInitialize()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: maxECBs in Windows IPXInitialize()
DOCUMENT ID#: FYI.A.3834
DATE: 05MAR92
PRODUCT: Network C for Windows
PRODUCT VERSION: v.1.2
SUPERSEDES: NA
SYMPTOM: Unrecoverable Application Error in Windows
ISSUE/PROBLEM
In Windows Enhanced mode, passing 0 for maxECB parameter in the IPXInitalize() function, and then managing the allocation of ECBs in low memory results in a UAE (Unrecoverable Application Error).
SOLUTION
In Windows Enhanced mode, passing 0 for maxECBs is allowed only for compatibilty with the Standard mode. That is, specifying 0 for the maxECB parameter will be ignored, and VIPX will do the managing of allocation of ECBs. However, in Standard mode, the application has the option of passing 0 for the maxECBs and then the application may allocate its own ECBs.
FYI: UTAH COBOL and BTRIEVE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: UTAH COBOL and BTRIEVE
DOCUMENT ID#: FYI.A.1856
DATE: 05MAR92
PRODUCT: Btrieve DOS 3.1
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Can't find symbol BTRV
ISSUE/PROBLEM
Customer reported a problem using a Cobol compiler named UTAH COBOL. After purchasing Btrieve 5.10a he was no longer able to access Btrieve. It was reported that the application would generate a message about the symbol BTRV. After researching the problem the customer found that the file BDRT.EXE was missing from the library and that was the entry point that the executable could not find.
SOLUTION
With the UTAH COBOL compiler be sure to keep the BDRT.EXE file in the library.
FYI: Sessions and NetWare SQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Sessions and NetWare SQL
DOCUMENT ID#: FYI.A.1852
DATE: 05MAR92
PRODUCT: NetWare SQL 386 NLM
PRODUCT VERSION: 3.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetWare SQL 3.0 will be stratified like NetWare to be sold by number of sessions available. There will be a 250 session version, 100 session version etc. This is very similiar to the NetWare stratification but there is one major difference: NetWare is sold by users, NetWare SQL is sold by sessions.
When running 250 user NetWare, then 250 workstations can be logged into the system at one time. There are 250 connections available on the server. Consequently Windows workstations and OS/2 workstations can be running multiple NetWare applications from a single workstation, but each of these still only counts as a single connection.
With NetWare SQL 3.0 the session count does not necessarily equate to a NetWare user. Consequently, when running 250 session NetWare SQL, it is possible to use all 250 sessions without having 250 workstations logged into NetWare. With Windows or OS/2, every application that makes a connection to NetWare SQL is considered a session. So if there are 10 Windows NetWare SQL applications running on 25 Windows workstations, all the NetWare SQL sessions would be in use, even though only 25 NetWare connections would be in use.
This same session usage concept holds true for the Btrieve NLM, any version, although the limit is based on the sessions parameter configured in the setup utility (maximum = 250 sessions).
SOLUTION
NA
FYI: "IPX Received Incomplete Packet.." AMI BIOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "IPX Received Incomplete Packet.." AMI BIOS
DOCUMENT ID#: FYI.P.5672
DATE: 04MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Getting "IPX RECEIVED INCOMPLETE PACKET FROM NETWORK"
ISSUE/PROBLEM
Customer was trying to set up a new NetWare v3.11 network with just 2 nodes. When he tried to attach to the file server from his workstation, he would get the above message at his file server screen, and would eventually timeout at his workstation.
SOLUTION
The AMI BIOS on the workstation has an "Advanced CMOS Setup" with lots of detailed parameters that can be manipulated. One of these was an "Advanced Chipset Setup" which has as one of it's options, "ROM read Option". Customer disabled the "ROM read Option" and his above mentioned incomplete packet problem went away and he was able to login using all of the NIC/driver combinations he had previously tried by setting to defaults. Customer said there was no warning or mention in his documentation implying a need to be concerned with disabling this "ROM read Option".
FYI: Login Script Problems With "MENU.BAT" File Name
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Login Script Problems With "MENU.BAT" File Name
DOCUMENT ID#: FYI.P.5657
DATE: 04MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Login Script Problems With "MENU.BAT" File Name
ISSUE/PROBLEM
Supervisor had just changed the system login script and then no one could login, not even supervisor. Issued login from A: with the /s command to bypass the sys login. Then in SYSCON we found he had a #menu.bat. We changed it to EXIT "MENU.bat" which did not help.
SOLUTION
It seemed to be confusing MENU.bat with the MENU.EXE. Renamed the batch file to RUNMENU.bat and it worked.
FYI: Print Jobs Ignoring Time Out Or Stay In Queue
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Print Jobs Ingnoring Time Out Or Stay In Queue
DOCUMENT ID#: FYI.P.5654
DATE: 04MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Print jobs either ignore time out and print immediately or stay in queue forever.
ISSUE/PROBLEM
Using the latest PSERVER.nlm (1-10-92) and rprinter with an original Hewlitt-Packard laserjet printer attached to COM2 as a serial printer. It printed fine from DOS, but when using network queues job either printed out immediately, ignoring the 10 second time out or else stayed in the queue forever. They were capturing to LPT2 on their local workstation.
SOLUTION
Used the DOS mode command to assign COM2 to LPT2, then set the printer up as LPT2 in Pconsole, removed the mode statement, set the printer up as a remote serial printer using XON/XOFF.
FYI: "There Are No Accessible Drives" Duplexing Maxtor
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "There Are No Accessible Drives" Duplexing Maxtor IDE
DOCUMENT ID#: FYI.P.5653
DATE: 04MAR92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Error:" There are no accessible drives" when trying to duplex
ISSUE/PROBLEM
Customer running on a Everex 486/33 machine and trying to duplex 2 Maxtor LXT 340 MB IDE drives, using 2 Quantum controller cards Prodrive ISA-151a.
He was able to load ISADISK that came with 3.11 and see both drives in disk options however it was extremely slow. He then used the same ISADISK with the /b /l parameter. This sped up the server greatly but now he could only see one drive.
SOLUTION
Loading IDE.dsk driver from IDE386.zip allowed him to see both drives and duplex them.
FYI: PCKwik configuration settings.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: PCKwik configuration settings.
DOCUMENT ID#: FYI.P.5650
DATE: 04MAR92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: PcKwick configuration settings.
ISSUE/PROBLEM
PcKwick has configuration settings with NetWare Lite.
SOLUTION
The only way to get the product to work consistently was to set the H parameter in the PcKwik options to '-'. It wouldn't work if the H parameter was set to '+' or '#'. The DR DOS Optimization and Configuration manual says that the D parameter needs to be set to '-' also. (Those switches correspond to advanced cache reads and writes according to the manual.)
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The server crashed after the error GPPE. Running Bustek 4201 Busmastering SCSI controller (Burst mode) with 486-33, EISA, Gateway 32Bit Ethernet, 32MB Ram, 1.6 Gig SCSI hard drive. Brought the server back up one of the volumes was having problems.
SOLUTION
Bustek told us to make sure that the controller was set to below 1 Gig. (There is no disk loss) and check the hard drive to make sure that it was a fast SCSI DRIVE (it was not). So we needed to slow the controller down from 10MHz to 4MHz. Things are moving along just fine now.
FYI: Btrieve DATE Data Type and BASIC
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve DATE Data Type and BASIC
DOCUMENT ID#: FYI.A.2110
DATE: 04MAR92
PRODUCT: Btrieve
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Developing Btrieve applications with Microsoft BASIC PDS 7.X or Visual Basic v1.0, the Btrieve DATE data type is required if sorting on a date field.
SOLUTION
The Btrieve documentation describes the DATE data type field as being stored internally as a 4-byte value. The day and month are each stored in 1-byte binary format. The year is stored as a 2-byte integer value. The day is in the first byte, the month in the second byte, and the year is a two byte word following the month.
In order to match this key type in a BASIC application, create a structure using the user-defined TYPE and END TYPE statements.
TYPE Date
Day AS STRING * 1
Month AS STRING * 1
Year AS INTEGER
END TYPE
DIM Birthdate AS Date -------> Name the structure using the DIM statement for BASIC PDS 7.X
Global Birthdate AS Date ----> Name the structure using the
Globalstatement for Visual Basic v1.0
Assign values to these variables using the MKI$ and the CHR$ functions. Since the day and month variables need to be stored as a 1 byte string, the integer values must be converted to string values using the MKI$ or CHR$ function.
Birthdate.Day = MKI$(20) Birthdate.Day = CHR$(20)
Birthdate.Month = MKI$(6) OR Birthdate.Month = CHR$(6)
Birthdate.Year = 1999 Birthdate.Year = 1999
The MKI$ function converts a 2-byte integer to a 2-byte string. The CHR$ function converts a decimal value to its equivalent ASCII charachter.
Since the day and month variables will never exceed 255, only the low-order byte is being manipulated. Either function will store the same value.
NOTE: Visual Basic v1.0 does not support the MKI$ function, therefore,
the CHR$ function must be used instead.
Once these values have been inserted into the Btrieve file, the same birthdate structure can be used as a key buffer parameter to retrieve the data with a GET operation. Once the record is returned into the birthdate structure, the day and month variables need to be converted back to their numeric values.
The conversion can be accomplished with the ASC function which returns the numeric value of the equivalent ASCII character.
Day% = ASC(Birthdate.Day)
Month% = ASC(Birthdate.Month)
Year% = Birthdate.Year
FYI: Watcom Compiler Switch /oaxt
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watcom Compiler Switch /oaxt
DOCUMENT ID#: FYI.A.3833
DATE: 02MAR92
PRODUCT: WATCOM C Compiler
PRODUCT VERSION: 8.5
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If a program is compiled with Watcom C/286 compiler and the /oaxt switch was used for optimization, the program will not work. If the /oaxt switch is not used, the program will work.
SOLUTION
There is a problem with the /oaxt switch. The Data Segment does not get updated correctly, and incorrect code will be produced.
The /oailt and /s switches can be used instead.
This problem does not exist in version 9.0 of the compiler.
FYI: SPXEstablishConnection
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SPXEstablishConnection
DOCUMENT ID#: FYI.A.2656
DATE: 02MAR92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Just a reminder: (SPX Communications)
When SPXEstablishConnection is being called and an ESR is being used, it may fire prior to the function completing. On faster machines this is very likely, but on slower machines the function may complete, and the ESR will fire afterwards. If a developer codes an ESR with special control features it may work differently depending on the speed of the processor.
In addition, the IPXWorkspace in the connection ECB is not completed until SPXListenForSequencePacket APIs are used. It is not completed for SPXEstablishConnection.
SOLUTION
NA
FYI: Sockets: Long or Short Lived???
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Sockets: Long or Short Lived???
DOCUMENT ID#: FYI.A.2655
DATE: 02MAR92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If an SPX communication oriented TSR, or application that spawns another application is being written, it must open sockets as LONG LIVED. This ensures that the socket will not be automatically closed when the first EOJ (End Of Job) is sent to the server. SHORT LIVED sockets are automatically closed on the first EOJ.
SOLUTION
NA
FYI: Additional Status Codes Possible on Update Operation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Additional Status Codes Possible on Update Operation
DOCUMENT ID#: FYI.A.2342
DATE: 02MAR92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 54 or Status 43 returned on an Update.
ISSUE/PROBLEM
There are situations where a Btrieve Update operation might return a status 54 'Variable Page Error' or status 43 'Invalid Data Record Address'. The following scenario describes one such circumstance using NetWare Btrieve (NLM or VAP):
Workstation 1 has accessed a file from within a transaction, resulting in a file-level lock.
Workstation 2 is reading records from the same file, and wants to update a record that was inserted or updated by workstation 1 within the transaction.
If workstation 2 reads this record to be updated, but then workstation 1 aborts the transaction, workstation 2 will receive the following non-zero status codes when issuing the update operation:
if the records are variable length --> status 54
if the records are NOT variable length --> status 43
SOLUTION
NA
FYI: "Runtime Error R6002, Floating..."
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Runtime Error R6002, Floating..."
DOCUMENT ID#: FYI.P.5628
DATE: 28FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Runtime error r6002, Floating point processor not loaded.
ISSUE/PROBLEM
When customer tried to access SYSCON and FCONSOLE from a 486/33 clone, would get the above error.
SOLUTION
Had PC Tools tsr (sorry, don't know which one) loaded on 486/33 workstation. Unloaded and works great.
FYI: Deleted Owner ID Causing Append Problems. NetWork C
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Deleted Owner ID Causing Append Problems. NetWork C
DOCUMENT ID#: FYI.P.5622
DATE: 28FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Deleted OwnerID causes append problems
ISSUE/PROBLEM
When a file is created it is given an ownerID. If for some reason the owner of this file gets deleted from the bindery, the file will have an invalid ownerID. When this file is opened by an NLM in append mode and writes to the file, the NLM will get an I/O error when the next write causes the file to expand past the next file allocation unit (default 4096).
SOLUTION
If a user is deleted from the bindery all the files he owns should be changed to a valid ownerID or deleted. If there is a file that is absolutely necessary to protect, making the ownerID supervisor will insure it will never have an invalid ownerID.
FYI: Installing PUBLIC And SYSTEM Files From B: Drive
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Installing PUBLIC And SYSTEM Files From B: Drive
DOCUMENT ID#: FYI.P.5620
DATE: 28FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Not able to install Public and System files from drive b:
ISSUE/PROBLEM
Customer was trying to install from drive A:, B:, C: none of which would allow him to load public and system files from drive B:. It would check A: and\or C: but never B:
SOLUTION
Install -J will allow you to select the drive, as documented in the Readme.311 file shipped with v3.11.
FYI: Current API's Only Able To Access First 250 Print
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Current API's Only Able To Access First 250 Print Jobs
DOCUMENT ID#: FYI.P.5619
DATE: 28FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Queue functions for v3.11
ISSUE/PROBLEM
In NetWare v2.15 and v3.10 a queue could only have 250 jobs. Our API GetQueueJobList returns these 250 jobs. When v3.11 came out the queues were allowed to hold about 1000 jobs. With our current APIs you can only access the first 250 jobs of the queue. There are NCPs that allow you to access the other jobs, but there are no APIs to call them.
FYI: Btrieve and DOS 5.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve and DOS 5.0
DOCUMENT ID#: FYI.A.2506
DATE: 28FEB92
PRODUCT: Btrieve DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Dos file handles remain open
ISSUE/PROBLEM
If Btrieve is loaded using a C spawn function after DOS files have been opened, the handles for the DOS files are not released when the files are closed and the program terminates. This does NOT happen if:
- a version of DOS earlier than 5.0 is used
or - if Btrieve is loaded before going into the application
or - if Btrieve is loaded using a system call
or - if Share is loaded
SOLUTION
NA
FYI: Sparse Files on NetWare 3.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Sparse Files on NetWare 3.x
DOCUMENT ID#: FYI.A.1031
DATE: 28FEB92
PRODUCT: Btrieve
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: Btrieve file size larger than the disk volume size
ISSUE/PROBLEM
A problem has been seen where a Btrieve file appears to be many times larger than the actual hard disk size. A DIR on this file showed the file size to be in excess of 400 megabytes, even though the hard disk was only 150 megabytes in size. This occured under NetWare 386 version 3.11 using the Btrieve NLM version 5.15 patched up to #49. This phenomenon occurs when NetWare creates a sparse file, which causes a DIR to show a size much larger than what was actually allocated.
The Btrieve application had been running successfully for several months with no problems, but recently several new workstations had been installed on the ethernet network. Also, several different shell versions were being used, up to but not including the latest version (3.22a). What caused the Btrieve file to become a sparse file was not determined, but a Butil -Recover followed by a Butil -Load successfully rebuilt the file, after which, the sparse file was deleted.
FYI: NetWare Lite patches
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Lite patches
DOCUMENT ID#: FYI.A.1030
DATE: 28FEB92
PRODUCT: NetWare Lite
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM:
ISSUE/PROBLEM
A variety of problems. Anyone using NetWare Lite should get and apply these patches.
SOLUTION
Patches are available for download from the CompuServe NOVLIB forum. Currently, the latest patches are in the file NWL004.ZIP, which can be downloaded from data library 1.
FYI: DR DOS problems
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DR DOS problems
DOCUMENT ID#: FYI.A.1029
DATE: 28FEB92
PRODUCT: DR DOS
PRODUCT VERSION: 6.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There are several patches available for DR DOS version 6.0 which fix a wide variety of problems. Anyone using DR DOS v6.0 should get and apply these patches.
SOLUTION
Patches may be acquired in several ways:
1. download the patches from their CompuServe Forum called DRFORUM;
2. request patches via mail by calling Digital Research directly
at 408-646-6464;
3. request patches via mail by faxing Digital Research at 408-649-8209.
FYI: Repeated SELECT Statement Returns Inaccurate Data
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Repeated SELECT Statement Returns Inaccurate Data
DOCUMENT ID#: FYI.A.1027
DATE: 28FEB92
PRODUCT: NetWare SQL 386 NLM
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Different data returned when statement executed twice.
ISSUE/PROBLEM
A SELECT statement with an ORDER BY clause using non-indexed fields returns inconsistent data. The first time the statement is executed the appropriate data is returned. Subsequent executions of the same statement only return a portion of the data, which seemed to be the last records retrieved during the first execution of the statement.
SOLUTION
NA
FYI: PressAnyKeyToContinue Displays Wrong Message
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The PressAnyKeyToContinue() displays the message <Press any to continue> rather than <Press any key to continue>.
SOLUTION
NA
FYI: WHEREIS.C Does Not Support Multiple Volumes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WHEREIS.C Does Not Support Multiple Volumes
DOCUMENT ID#: FYI.A.3356
DATE: 26FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: Specified file is not found.
ISSUE/PROBLEM
The WHEREIS NLM example in the 2.0b Network C For NLMs SDK does not support volumes other than SYS. In other words, it will not search other volumes for files, even if a different volume is specified.
SOLUTION
Make the following code changes to the dowhereis() function in the WHEREIS NLM and recompile.
Before Modifications:
void dowhereis(char *s)
{
// startup the recursive file find operation
findit(both);
chdir(dir);
}
After Modifications:
void dowhereis(char *s)
{
// startup the recursive file find operation
chdir(fsv);
findit(both);
}
This change will force the current working directory to be the volume specified when the file specification was issued.
FYI: GetVolumeInfoWithNumber() Returns LONGs Instead of WORDs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetVolumeInfoWithNumber() Returns LONGs Instead of WORDs
DOCUMENT ID#: FYI.A.3139
DATE: 26FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: The GetVolumeInfoWithNumber() function is returning LONGs instead of WORDs.
ISSUE/PROBLEM
The GetVolumeInfoWithNumber() function is returning LONGs instead of WORDs. This can cause corruption of your data areas in your NLM, depending on how you defined the original variables. This is only true when making this call to the local server, as everything is handled properly on remote calls.
SOLUTION
Define the parameters as LONGs, and cast the pointer to WORD * when you make this function call. If you initialize the parameters to zero first, then this should work regardless of whether the call is made to a local or remote server.
FYI: Creating Basic Quick Libraries For Btrieve Interfaces
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Creating Basic Quick Libraries For Btrieve Interfaces
DOCUMENT ID#: FYI.A.2109
DATE: 26FEB92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When developing Btrieve applications using Microsoft QuickBasic version 4.X or 7.X using the QuickBasic interpreter environment, a Quick Library must be created which includes the required Btrieve interface.
SOLUTION
For Microsoft PDS 7.X:
|--> Name of Quick Library
|
Link /q bc7rbtrv.obj, bc7.qlb, , qbx.lib qbxqlb.lib;
| |
|--> Btrieve Interface |--> Required Libraries
To load the QuickBasic environment to include the newly created Quick Library execute the following command:
QBX /L BC7
For Microsoft QuickBasic 4.X:
|--> Name of Quick Library
|
Link /q qbixbtrv.obj, bc4.qlb, , bqlb4X.lib;
| |
|--> Btrieve Interface |--> Required Libraries
X = 5 for QB4.5
X = 0 for QB4.0
To load the QuickBasic environment to include the newly created Quick Library execute the following command:
QB /L BC4
FYI: Number of NLM Connections
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Number of NLM Connections
DOCUMENT ID#: FYI.A.1651
DATE: 26FEB92
PRODUCT: NetWare Operating System
PRODUCT VERSION: 3.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How many NLM connections are supported for each "flavor" of NetWare v3.11?
SOLUTION
Each "flavor" of NetWare 3.11 (1 user, 100 user, etc.) supports exactly 100 NLM connections, even though the number of remote connections varies.
FYI: Bconsole Out of Memory Problem
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Bconsole Out of Memory Problem
DOCUMENT ID#: FYI.A.3355
DATE: 25FEB92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: FYI.A.3006
SYMPTOM: CreatePortal returned error -2
ISSUE/PROBLEM
(The following information is an addendum to FYI.A.3006.)
Bconsole returns the above error when more than thirteen files are opened on multiple workstations. The complete description of the error message is "The system was unable to allocate additional memory". This message is received when the user attempts to view the list of open files for a specific user. The message will only be received when attempting to view users who have more than thirteen files opened. If only one user has more than thirteen files open the message is not displayed and program execution continues normally.
SOLUTION
This problem has been reported. Currently the only work-around is to use the Bconsole NLM.
FYI: File server crash while printing to LPT1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: File server crash while printing to LPT1
DOCUMENT ID#: FYI.P.5580
DATE: 22FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: File server crash while printing to LPT1
ISSUE/PROBLEM
File server would crash while printing to LPT1 on the file server running NetWare v3.11 but not a problem when customer was running NetWare v2.15.
SOLUTION
There is was conflict with the DTC 3280a SCSI controller and LPT1. Customer changed LPT1 on the file server to no interrupts and this corrected the problem.
FYI: "Parsed Driver Configuration Has Failed"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Parsed Driver Configuration Has Failed"
DOCUMENT ID#: FYI.P.5601
DATE: 21FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Problems Loading PS2SCSI Driver with IBM Model 57sx with Internal SCSI Subsystem
ISSUE/PROBLEM
Attempting to load PS2SCSI driver when installing v3.11, and got the message:
Supported Slot Values are: None.
All supported options are in use.
Error: Parsed driver configuration has failed.
SOLUTION
Use the SCSI driver in PS2OPT.ZIP
FYI: SYSCON Hangs When Run From Root Dir.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SYSCON Hangs When Run From Root Dir.
DOCUMENT ID#: FYI.P.5599
DATE: 21FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: SYSCON v3.62 hangs the workstations
ISSUE/PROBLEM
Customer had just installed a new 386 network. When trying to go into SYSCON at any workstation from the root directory the background screen would turn red with white lettering and freeze. He was able to get into SYSCON no problem if he was in the system or public subdirectory.
SOLUTION
The problem was that he had a IBM$RUN.OVL file in the root directory that was getting executed. After we renamed the IBM$RUN.OVL file in the root directory then SYSCON could find the IBM$RUN.OVL file in the public directory and SYSCON ran fine.
FYI: "The System Library File SYS$MSG.DAT..."
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "The System Library File SYS$MSG.DAT..."
DOCUMENT ID#: FYI.P.5598
DATE: 21FEB92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Error "The system library file SYS$MSG.DAT could not be opened Program terminated Initialization failure".
ISSUE/PROBLEM
Customer had:
CompuAdd 433 EISA with Phoenix BIOS
WD IDE 200 Meg drive
Intel Ether Express NIC
MS DOS v5.0 and v3.3
5.25" drive A:, 3.5" drive B:
Customer had 3.5" NetWare diskettes so he was doing a basic install from floppy drive B. He would get through most of the generation of the OS and to a point where it asked for SYSTEM-2. After installing that disk he got the above error messages. I had him try recopying the SYSTEM-2 diskette and even the SYS$MSG.DAT file from WSGEN diskette. No difference. Also tried DOS 3.3 in place of 5.0, and advanced install but the problem persisted.
SOLUTION
Had to move the 3.5" drive to be drive A.
FYI: Network Errors Copying NLM's From B: Drive
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network Errors Copying NLM's From B: Drive
DOCUMENT ID#: FYI.P.5595
DATE: 21FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Loading an NLM from B: drive with the drive door open.
ISSUE/PROBLEM
The customer wanted to load a NLM from B: drive on his server and did not push the button in on the drive. It tried to read the drive for several minutes. In the process users were getting Network error Abort or Retry. After 5 minutes it came back and said something like drive B: not ready. He pushed the button in and the NLM loaded just fine.
The customer reproduced it on a Compaq 386/33 System Pro and on two CompuAdd 386 systems not sure of Model. It was also recreated on a 486/33 System Pro. Being logged in as supervisor on the network did get the Network error Abort or Retry Did an SLIST and the server could not be found. After the 4 minutes the b: drive error was received the server took a couple of more minutes and then SLIST showed the file server.
SOLUTION
Close the door when loading from B: or A:. We were unable to duplicate this problem in the lab using a 386A for the file server.
FYI: Errors With 4thshift Database
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Errors With 4thshift Database
DOCUMENT ID#: FYI.P.5591
DATE: 21FEB92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: "Write error on directory xxxxx=archive file" on the workstation and "abend:stack overflow detected by kernal" on the file server.
ISSUE/PROBLEM
Customer was using a database called 4thshift on a NetWare v2.2 server that had an IDE drive in it. After running for 4 months, the server went down with the above errors.
SOLUTION
Generated NetWare again with new IDE286.ZIP driver and changed verify to on for the driver. Customer says that without the verify on he had to continuously run VREPAIR on the drive.
FYI: readdir() Abends When Used Against Remote 2.x Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: readdir() Abends When Used Against Remote 2.x Server
DOCUMENT ID#: FYI.A.3138
DATE: 21FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Server abend
ISSUE/PROBLEM
There is a problem with the readdir() function in CLib 3.11 and PATCH311.NLM. If it is used against a remote 2.x server, the local server may abend.
SOLUTION
There is currently no solution.
FYI: Incompatibility With NetWare Lite, Acer 710 And
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Incompatibility With NetWare Lite, Acer 710 And DE100
While using the Dlink DE100 ethernet card with the NE1000 driver that came with NetWare Lite, or using the Dlink driver, the workstation would hang with no error message after typing NETX.
SOLUTION
The technician on site concluded that there was an incompatibility between the ACER 710, the DE100 card, and NetWare Lite. He replaced the DE100 card with an Arcnet card and is now working fine.
FYI: Error Initializing LAN Driver. Racore 8110 NIC
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error Initializing LAN Driver. Racore 8110 NIC
DOCUMENT ID#: FYI.P.5574
DATE: 20FEB92
PRODUCT: NetWare
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Installing a Racore 8110 gets the error "Initializing lan driver: open-function failure".
SOLUTION
Connect the Racore 8110 NIC to a MAU which allows it to complete its initializing process properly. The card was initialized but in order to do a complete initialization it has to be connected to a MAU.
FYI: NetWare Lite Used With Access Servers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Lite Used With Access Servers
DOCUMENT ID#: FYI.P.5573
DATE: 20FEB92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Can NetWare Lite be used with a Novell Access Server?
SOLUTION
The official word is that it is not supported. However, a customer has tried it and has had it working for one session only. He said that it does not allow dynamic slots, so only one session can be using Lite at a time. He tried using two sessions and it logged the second person in as if it were the first. So, unofficially you can load the Access server and open a session and run Lite in that session.
Engineering said that they were using dynamic sockets with NetWare Lite.
FYI: "File Server Cannot Be Found" v2.2 Nondedicated, DOS 5.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "File Server Cannot Be Found" v2.2 Nondedicated, DOS 5.0
DOCUMENT ID#: FYI.P.5567
DATE: 20FEB92
PRODUCT: NetWare
PRODUCT VERSION:
SUPERSEDES: NA
SYMPTOM: Getting the error "A file server could not be found".
ISSUE/PROBLEM
Configuration:Using 3c503 tp cards in both f/s and w/s.
Running non-dedicated file server.
Comcheck worked fine but every time IPX and NETX were loaded the above error was displayed. Also sometimes getting the error "No free connection slots".
SOLUTION
Booting the non-dedicated file server with something other than DOS 5.0 worked.
FYI: "File Server Not Found". Trident Video Card
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "File Server Not Found". Trident Video Card
DOCUMENT ID#: FYI.P.5566
DATE: 20FEB92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Configuration: Clone server
Trident TVGA 8900 video card
3C503 NIC
After installing NetWare v2.2 the server booted without problem. However no workstations could see the server. Comcheck worked fine between all the machines. Tried various options on the 3C503 but all without success. One thing the customer mentioned was that for IPX to run COMCHECK he did not have to select a base memory address for the card. Using the JUMPERS utility to configure the OS it would at first appear to let him select "none" for base memory but would not save it that way.
SOLUTION
Customer read the manual that comes with his Trident graphics adapter. The card has an option for "fast access" or "slow access" for what he called an address decode. The DIP switch position 5 was set to off for fast access which apparently uses memory segments A000 to DFFF. He set that to on for slow access and every thing worked.
FYI: CLIB Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB Documentation Error
DOCUMENT ID#: FYI.A.3832
DATE: 20FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the NetWare Loadable Module Library Reference Volume I, page 3-8 under the description of compiler option /3s, it mentions that stack-based parameter passing is the compiler default. This is not true.
SOLUTION
Register based parameter passing (switch /3r) is the compiler default for the Watcom 32 bit compiler.
FYI: Btrieve Pascal Examples
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Pascal Examples
DOCUMENT ID#: FYI.A.1744
DATE: 20FEB92
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 25 or 27 on a Create
ISSUE/PROBLEM
The sample Pascal programs in the Btrieve Programmer's Manual (April 1990 edition) were written for IBM (or Microsoft) Pascal. Programmers using Turbo Pascal can not use the examples straight out of the book because of the difference in the way "string" variables work in the two languages. In Turbo Pascal, a variable declared as "string[4]" is actually 5 bytes long, which includes a length byte indicating the significant amount of data in the remaining 4 bytes. Btrieve, however, does not expect this length byte, and will try to interpret it as a general data byte. Specifically, the Btrieve Create example in Appendix D will result in a status 25 - 'Create I/O Error', 27 - 'Invalid Key Position', or possibly other errors if used in a Turbo Pascal program. The following changes should be made in order for the example to function properly under Turbo Pascal:
a) The key specification must include a 4-byte "Not used" field. The sample program has this declared as NOT_USED : string[4]; which is actually a 5-byte field. This will cause a status 27 to be returned on the Btrieve create call. Change this variable to NOT_USED : ARRAY [1..4] OF char;
b) Similarly, the file specification includes a 4-byte "Not used" field as well as a 2-byte "Reserved" field. The sample program declares these as NOT_USED : string[4]; and RESERVED : string[2]; respectively. These may also produce a status 27 on the Btrieve create call. Change the data type of these fields to ARRAY [1..x] OF char.
c) The KeyBuffer parameter passed on the BTRV create call must contain the name of the file to be created. The example uses a variable declared as FILE_NAME : string[17]; and then calls Btrieve with this variable as the key buffer (5th) parameter. When Btrieve looks at FILE_NAME, the first thing it sees is the length byte, which is generally not a legal character for a DOS file name, and a status 25 will be returned. To fix this, either declare this parameter as an ARRAY [1..x] OF char or pass it to Btrieve with a [1] subscript, for example:
STATUS := BTRV (B_CREATE, POS_BLK, ..., FILE_NAME[1], 0);
In addition, many of the sample programs define the data buffer with a variant record. This is not necessary in Turbo Pascal. For example, the Get First example defines and uses the data buffer as follows:
type
EMP_REC = record
case integer of
1: (NAME : string(20);
AGE : string(2);
HIRE_DATE : string(6));
2: (ENTIRE : string(28));
end;
var
DATA_BUF : EMP_REC;
...
begin
...
STATUS := BTRV(B_GET_FIRST, POS_BLK, DATA_BUF.ENTIRE, DATA_LEN,
KEY_BUF, 2);
When using Turbo Pascal, you can use a simple record type, such as:
type
EMP_REC = record
NAME : string[20];
AGE : string[2];
HIRE_DATE : string[6]
end;
Then, just specify DATA_BUF as the 3rd parameter:
STATUS := BTRV(B_GET_FIRST, POS_BLK, DATA_BUF, DATA_LEN, KEY_BUF, 2);
SOLUTION
NA
FYI: Loading DLLs Explicitly in Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading DLLs Explicitly in Windows
DOCUMENT ID#: FYI.A.1650
DATE: 20FEB92
PRODUCT: Network C for Windows
PRODUCT VERSION: v1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How do you develop a Windows program that is NetWare aware, without relying on NetWare being there? Normally, if a Windows program makes any calls to any NetWare C Interface-Windows DLL, that DLL is loaded implicitly (automatically) by Windows at run-time. All of these DLLs except the NWIPXSPX.DLL require access to functions in the NETWARE.DRV (which in actuality is a DLL). NETWARE.DRV is NOT loaded if the NetWare shell is not loaded before starting Windows.
SOLUTION
Load the DLLs explicitly instead of implicitly, as follows:
a) Determine if the NETWARE.DRV is loaded:
HANDLE hNetWare;
hNetWare = GetModuleHandle("NETWARE.DRV");
if (hNetWare == NULL)
// not loaded
else
// loaded!
b) See if you can load the DLL (in this case, NWBIND.DLL):
HANDLE hDLL;
hDLL = LoadLibrary("NWBIND.DLL");
if (hDLL < 32)
// some kind of error (file not found = 2)
else
// loaded!
c) Make the function(s) point to their location(s) in the DLL. Below
These steps also require the use of modified prototypes for the functions, so they are pointers to functions. For example, to modify the prototype for GetBinderyObjectID(), change the line in the NWBINDRY.H file from:
extern WORD FAR PASCAL GetBinderyObjectID(char far *objectName,
WORD objectType,
DWORD far *objectID );
to:
WORD (FAR PASCAL *GetBinderyObjectID)(char far *objectName,
WORD objectType,
DWORD far *objectID );
In addition, do NOT import the functions from the DLLs you explicitly load. The actual calls to the functions do not have to be changed once all the above steps are taken.
FYI: Unable To Download Fonts. Bankstar App.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unable To Download Fonts. Bankstar App.
DOCUMENT ID#: FYI.P.5560
DATE: 19FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Unable to download fonts.
ISSUE/PROBLEM
Using BANKSTAR application and BP1 (font package) to merge forms and download fonts. It was working fine under NetWare v2.15c. After upgrading to v3.11 it wouldn't download the fonts properly. Tried upgrading the Pserver to the latest version to no avail.
SOLUTION
He changed from BP1 to JETFORM which is another package that does the same thing and it works perfectly. Seems to be some problem with BP1 and NetWare v3.11.
FYI: "Invalid Drive Passed To Disk Process" v2.2 Install
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Invalid Drive Passed To Disk Process" v2.2 Install
DOCUMENT ID#: FYI.P.5558
DATE: 19FEB92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: VREPAIR gets error "Invalid drive passed to disk process".
ISSUE/PROBLEM
Using an IBM mod 80 with a SCSI drive.
Everything installed with no problems. While booting the server it came to mounting the volume which seemed okay but instead of saying mounted successful it said mounted UCCESSFUL (no S). We explored things and finally ran VREPAIR which gave the above error. We thought the controller or perhaps the drive had the problem.
SOLUTION
Just to make sure we had them run install -f and select write track 0 information. Once this was done the server booted up okay.
FYI: Returning User To Home Directory After Exiting MENU
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Returning User To Home Directory After Exiting MENU
DOCUMENT ID#: FYI.P.5555
DATE: 19FEB92
PRODUCT: NetWare
PRODUCT VERSION: v3.11, v2.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A customer wanted to execute an application from MENU then have the user end up in his home directory after exiting the application.
SOLUTION
g:
anyappldo
f:
cd user\%variablename% (BOTH PERCENT SIGNS ARE NEEDED)
login script
DOS set variablename = "%login_name"
FYI: Server And Clients Hang. Xircom ODI Driver
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server And Clients Hang. Xircom ODI Driver
DOCUMENT ID#: FYI.P.5548
DATE: 18FEB92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Server and Client hangs, lockups, etc.
ISSUE/PROBLEM
The customer had the Xircom Network Simplicity Kit which contains two Xircom adapters, Cable, T-connectors and two OEM versions of NetWare Lite. When using DOS 5.0 and coping files, the server and the client locks up.
SOLUTION
The problem is with the ODI driver that ships with the Kit. It has a known bug with DOS 5.0 that Xircom is working on currently. The work around is to use another version of DOS until the ODI is fixed. The name of the ODI driver shipped with the kit is PESMLID.COM and has a date of 12-11-91. With the file size of 19,826. All tech-support for NWLITE sold with the Simplicity kit is free through Xircom and customers should be directed to them at 1-800-367-0016.
FYI: PCache Problems In NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: PCache Problems In NetWare Lite
DOCUMENT ID#: FYI.P.5542
DATE: 14FEB92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Nodes hang
ISSUE/PROBLEM
Customer having severe problems with one or more nodes hanging frequently without any pattern. It would hang from DOS or within any application.
SOLUTION
Stopped using PCache and some of the problems went away.
FYI: NetWare Technical Overview
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Technical Overview
DOCUMENT ID#: FYI.A.3831
DATE: 11FEB92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The index for NetWare C Interface for Windows has references to the NetWare System Interface Technical Overview. However, the Technical Overview is not part of the NetWare C Interface for Windows SDK.
SOLUTION
The Technical Overview comes with NetWare C Interface for DOS, or it can be purchased separately by calling 800-RED-WORD.
FYI: Multiple Threads Using The Same Socket
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Multiple Threads Using The Same Socket
DOCUMENT ID#: FYI.A.2936
DATE: 11FEB92
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.3a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
It is important to note that OS/2 and NetWare 3.x are both connection based operating systems, as opposed to the DOS operating system, which is socket based. Under DOS, different processes should not use the same socket number. The same rules apply under the OS/2 operating system, except when generating multiple threads under OS/2. Multiple threads can share the same socket number, but each thread has its own connection number. The main thread will open the socket once, and the rest of the threads will just use the socket. SPX under OS/2 distinguishes the sending and receiving of packets for multiple threads using the same socket. Also, it is important to note that all of the packets under the OS/2 environment are received in the same order they are sent, since the OS/2 operating system set them up in a queue.
SOLUTION
NA
FYI: NetBios Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetBios Documentation Error
DOCUMENT ID#: FYI.A.2935
DATE: 11FEB92
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.3a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation for the OS/2 SPX section specifies the wrong SPX return codes for the following functions:
SpxAbortConnection()
SpxCancelPacket()
SPXEstablishConnection()
SpxEstablishConnection2()
SpxGetConfiguration()
SpxGetConnectionStatus()
SpxGetConnectionStatus()
SpxListenForConnection()
SpxListenForConnection2()
SpxListenForConnectionPacket()
SpxSendSequencePacket()
SpxTerminateConnection()
The documentation specifies that the above SPX function calls return "0x3000 SPX_SUCCESSFUL". This return code should be "0x0000 SPX_SUCCESSFUL" instead. There is no way for an SPX function to return successful with 0x3000 as the return code. The documentation should specify that the "0x3000" return code is for the ECB's completion code and not for the SPX function completion code.
SOLUTION
NA
FYI: Communications and VIPX.386 1.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Communications and VIPX.386 1.1
DOCUMENT ID#: FYI.A.2654
DATE: 11FEB92
PRODUCT: NetWare C Interface for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: Machine hangs
ISSUE/PROBLEM
Using VIPX version 1.1 may cause the machine to hang as a result of calling the IPXCancelEvent function. This results from a problem involving a circular ECB list that is posted to IPX via VIPX.
SOLUTION
There is no workaround available at this time.
FYI: Internals of the XQL Data Segment
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Internals of the XQL Data Segment
DOCUMENT ID#: FYI.A.1745
DATE: 10FEB92
PRODUCT: XQL for DOS
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When XQL is loaded, it allocates a 64K data segment which is where all its local variables are stored when executing the functions requested by an application. Out of this 64K data segment there is a fixed amount of memory which is taken up by global data and data that is allocated at load-time. The remaining memory is divided up according to the specified load-time parameters. The following chart shows how the 64K buffer is divided up. Note: The use of expanded memory will not change the information below. The benefit of expanded memory is that you will have more free memory available on your system once XQL loads.
980 Memory allocated to hold information about active dictionary
539 Current Session data structure
867 Current View data structure
1400 Join List data structures
2267 Data buffer allocated at load-time which is used for swapping
data structures to disk
2062 Memory used for extended Btrieve operations
896 Dictionary position blocks
817 Miscellaneous key buffer, currency addresses, etc.
------
23684 This is the fixed size of data that resides in XQL's 64K data segment. There are 41852 bytes of data left for the load-time parameters. Space will be allocated in the data segment for the /w, /t and /b parameters as follows:
w Fetch buffer. w = value in /w: parameter
t * 130 Transaction processing. t = value in /t: parameter
Defaults to 12.
b * 1024 Heap buffer. b = value in /b: parameter
--------
65536 If this number is exceeded, XQL will display an "insufficient memory" error and fail to load.
1. The following load parameters will cause insufficient memory
xql /t:12 /v:8 /w:8000 /b:32 /e
23684 + (12 * 130) + 8000 + (32 * 1024) = 66012
2. Dropping the /t parameter to 8 will allow XQL to load.
xql /t:8 /v:8 /w:8000 /b:32 /e
23684 + (8 * 130) + 8000 + (32 * 1024) = 65492
SOLUTION
NA
FYI: "Disk Error 51 Reading Drive x" NetWare Lite
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Disk Error 51 Reading Drive x" NetWare Lite
DOCUMENT ID#: FYI.P.5484
DATE: 07FEB92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Disk error 51 reading drive x
ISSUE/PROBLEM
Customer is experiencing disk error 51 reading drive when running NetWare Lite. The error is a DOS extended error and is interpreted by Word Perfect as "network remote station not listening." This error happens when the connection is interrupted between the server and the client.
SOLUTION
This error is usually hardware related. Check the cabling, card interrupts, card I/O addresses, etc. Rule out conflicts with the NIC card.
If the above does not work, try using the following parameters when booting WP /nc/nk/ne/nh (i.e. wp/nc/nk/ne/nh). If the error does not occur then experiment to see which parameter fixed the problem. The definitions of the parameters are:
/nc - cursor speed - the program is moving too fast for the hardware
/ne - no expanded memory - disables the expanded memory.
/nh - disables hardware port calls - disables local hardware.
(NOTE: not recommended for machines running WP locally)
Another solution is as follows:
When loading WP 5.1 if the user from the client will load the parameters /d-local drive: and /r (i.e. wp/d-c:/r), it should solve the problem. This loads all the overflow files and error files to the local machine so it won't look on the server (that is down) for that information.
/r - this prameter loads the overlays, error messages and about 580k of menus will be loaded into expanded memory on the client machine.
/d-drive/directory - redirects the overflow files and temp buffers to the specified directory. The specified directory can be a directory on the clients hard drive, a floppy or even a ram disk.
FYI: MapDrive() And Search Drives
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MapDrive() And Search Drives
DOCUMENT ID#: FYI.A.3354
DATE: 07FEB92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: Mapped drives can not be deleted.
ISSUE/PROBLEM
Numerous problems have been reported by developers when attempting to delete search drives with the MapDrive() function. The function will successfully delete mapped search drives, but there are a few undocumented prerequisites. Below is an example of what is required to delete a mapped search drive.
GetSearchDriveVector(vectorBuffer);
for(i=0;i<16;i++)
if(vectorBuffer[i] == driveLetter - 'A') break;
if(i == 16) i=0;
else i++; /* Search Drives Are Relative*/
/* to 1 not 0. */
cCode=MapDrive(connectionID, /* File Server Connection ID */
NO_BASE_DRIVE, /* No Relative Drive Mapping */
"", /* No Path Required */
DRIVE_DELETE, /* Delete This Drive */
i, /* Number Of Search Drive */
&driveLetter); /* Drive To Be Deleted */
The two most common problems are not using the proper connectionID and not passing in the proper search drive number. The connectionID is the file server to which the drive is mapped. The search drive number is a number from 1 to 16 which indicates the order of the search drive in the search drive vector table.
SOLUTION
NA
FYI: Loading/Unloading Xtrieve Many Times Hangs DOS v5 Workstation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading/Unloading Xtrieve Many Times Hangs DOS v5 Workstation
DOCUMENT ID#: FYI.A.2417
DATE: 07FEB92
PRODUCT: Xtrieve PLUS Network
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Workstation hangs
ISSUE/PROBLEM
On a standalone machine, running DOS 5.0, if you load and unload Xtrieve PLUS v4.10 approximately 14 times, the workstation will hang. This problem was reproduced with the following products:
DOS v5.0
Btrieve for DOS v5.10a (patched to #114)
XQLP v2.11a (shipped with Xtrieve PLUS v4.10)
Xtrieve PLUS v4.10 (patched to #15)
Xtrieve loaded Btrieve and XQLP automatically, and default load parameters were used. The AUTOEXEC.BAT contained the statement: "prompt $p$g", and the CONFIG.SYS contained the statements: "files=60" and "buffers=20".
SOLUTION
If SHARE.EXE (which ships with DOS 5.0) is loaded before loading and unloading Xtrieve, the workstation does not hang.
FYI: VGA Card Conflict With Xtrieve PLUS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: VGA Card Conflict With Xtrieve PLUS
DOCUMENT ID#: FYI.A.1922
DATE: 07FEB92
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Machine hangs when loading Xtrieve
ISSUE/PROBLEM
When trying to load Xtrieve PLUS v4.10, the machine locks up, without even loading the record manager (or relational manager). No error messages are displayed.
SOLUTION
The problem appeared to be related to a particular VGA card, which when replaced by another brand, allowed Xtrieve PLUS to load at the workstation.
The VGA card with which the problem occurred was an AHEAD AVGA Deluxe board; perhaps also referred to as the A2000 series. The company name for this card is "AHEAD".
FYI: Status 27 On a Btrieve Create
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 27 On a Btrieve Create
DOCUMENT ID#: FYI.A.2416
DATE: 06FEB92
PRODUCT: Btrieve
PRODUCT VERSION: ALL
SUPERSEDES: NA
SYMPTOM: Status 27 - Invalid Key Position
ISSUE/PROBLEM
When creating a Btrieve file, a position must be specified for each key segment. This is the starting position of the segment within the data record. If the value 0 is specified for a key position, a status 27 (Invalid Key Position) will be returned.
SOLUTION
A key position must be between 1 and the specified record length. This is true for both a BUTIL -CREATE or an application making a Btrieve call which performs an operation 14 (Create).
FYI: The PUBLIC User in Xtrieve PLUS v4.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The PUBLIC User in Xtrieve PLUS v4.10
DOCUMENT ID#: FYI.A.1921
DATE: 05FEB92
PRODUCT: Xtrieve Plus Network
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Xtrieve's "PUBLIC" user - what is it?
SOLUTION
Xtrieve PLUS v4.10 has introduced a user called "PUBLIC" in it's Security implementation. This is not really a user, in the sense that one cannot use this username to get into a dictionary that has security installed. It does not even have a password - but, again, that's because it is not a username.
It can be thought of as a group (similar to NetWare - there can be individual users and groups). The "Master" user can assign rights to this user, and then, for every individual user that's added, the rights do not have to be re-defined. Each user can be assigned the rights that have been assigned to PUBLIC (similar to security equivalences in NetWare).
FYI: Queue Functions For NetWare 3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Queue Functions For NetWare 3.11
DOCUMENT ID#: FYI.A.3222
DATE: 04FEB92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 2.0a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The API GetQueueJobList() returns up to 250 job numbers for a specified queue. In NetWare 2.15 and 3.10, a queue could only have 250 jobs. However, NetWare 3.11 allows up to 8000 jobs in a queue. GetQueueJobList() can only access the first 250 jobs of a queue.
SOLUTION
NA
FYI: What is the Poll Function?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: What is the Poll Function?
DOCUMENT ID#: FYI.A.3221
DATE: 04FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When writing TLI (Transport Layer Interface) code, a t_look call can be used to poll the status of a TLI event. Alternatively, there is a function "poll" in the UNIX STREAMS section of the NLM SDKb which allows the same functionality. This function takes an array of handles returned by t_open, and will return control to the application when an event occurs on any of these handles or the specified timeout expires. This allows the TLI programmer to wait until an event happens and then handle it. In addition: poll can only be passed 20 handles.
SOLUTION
NA
FYI: Calling EstablishConnection() From an NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling EstablishConnection() From an NLM
DOCUMENT ID#: FYI.A.3220
DATE: 04FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
EstablishConnection() from an NLM fails when its client is a DOS workstation.
SOLUTION
The DOS client uses an ESR (Event Service Routine) which keeps interrupts disabled while it's registering the client. If the ListenForConnection() on the DOS client checks the inuse flag, the problem does not occur.
FYI: rename() Directory Against a 2.x Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: rename() Directory Against a 2.x Server
DOCUMENT ID#: FYI.A.3219
DATE: 04FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The rename() API does not work on a directory when a 2.x file server is the target.
SOLUTION
The rename() function takes an old name and a new name. When the target is a 2.x server, the old name must be a full path and the new name should be the new directory name, without a path specified.
FYI: ScanDirEntry Sequence Number
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanDirEntry Sequence Number
DOCUMENT ID#: FYI.A.3218
DATE: 04FEB92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using the ScanDirEntry() API against a NetWare 2.x server, only one or two files are returned. The sequence number is not being updated by this function when a 2.x server is detected.
SOLUTION
To avoid this problem, either change the source code to update the sequence number, or use the sequence number returned in the DirStructure.
FYI: Deleted OwnerID Causes Append Problems
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Deleted OwnerID Causes Append Problems
DOCUMENT ID#: FYI.A.3217
DATE: 04FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: I/O error from NLM
ISSUE/PROBLEM
When a file is created, it is given an onwerID. If, for some reason the owner of this file gets deleted from the bindery, the file will have an invalid ownerID. When this file is opened by an NLM in append mode and writes are made to the file, the NLM will get an I/O error when a write occurs which causes the file to expand past the next file allocation unit (default 4096). When using the Btrieve NLM, this problem generates a status 18 - "Disk Full".
SOLUTION
If a user is deleted from the bindery all the files owned by that user should be assigned a valid ownerid or should be deleted. If there is a file that it is absolutely neccessary to protect, making the ownerid supervisor will ensure it never has an invalid ownerID.
FYI: Calling GlobalAlloc() from a Windows DLL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling GlobalAlloc() from a Windows DLL
DOCUMENT ID#: FYI.A.2934
DATE: 04FEB92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When allocating an ECB (Event Control Block) dynamically using GlobalAlloc(), the following flags should be specified: GMEM_DDESHARE, GMEM_FIXED, GMEM_NOT_BANKED. However, GlobalLock() OR GlobalWire() must be called, followed by GlobalPageLock(). The reason for calling GlobalPageLock() is to inform the Windows Kernel not to switch the memory containing the ECBs. This is very important when using ESRs.
In any case, it is highly recommended that the ECB memory be locked in the DATA Segment. To accomplish this, declare the data segment containing both the ECBs and packet fragments as FIXED in the program's .DEF file.
SOLUTION
NA
FYI: HLLAPI Application Hangs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: HLLAPI Application Hangs
DOCUMENT ID#: FYI.A.2831
DATE: 04FEB92
PRODUCT: 3270 Tools for DOS
PRODUCT VERSION: 1.5
SUPERSEDES: NA
SYMPTOM: Program hangs when WAIT function is called.
ISSUE/PROBLEM
The wait function does not always return control to the calling application when the NWAIT option is set in Function-9: Set Session parameters.
If the PS (Presentation Space) is changed before you call Function-24 (Query Host Update) HLLAPI returns a status 22 - 'PS updated'. Subsequent calls to Function-24 always return a status 22 regardless of whether or not the PS is changed.
SOLUTION
The PTF253.ZIP file, located in library 9 of the NOVLIB forum on Compuserve contains a fix for this problem.
FYI: Send_Data Verb Hangs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Send_Data Verb Hangs
DOCUMENT ID#: FYI.A.2830
DATE: 04FEB92
PRODUCT: LU6.2 Tools for DOS
PRODUCT VERSION: 1.1
SUPERSEDES: NA
SYMPTOM: Send_Data verb hangs workstation
ISSUE/PROBLEM
Send_Data verb hangs even after setting attach_pu.retcode = Incomplete. It hangs (doesn't return) when the receive program is paused (and the pacing count is used up). This behavior is only expected if attach_pu.return_code was set to Complete; when set to Incomplete, send_data is expected to return with some 'incomplete' error.
SOLUTION
Currently, there is no work around.
FYI: CPI-C Interface Support for NetWare LU6.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CPI-C Interface Support for NetWare LU6.2
DOCUMENT ID#: FYI.A.2829
DATE: 04FEB92
PRODUCT: LU6.2 Tools for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: Netware LU6.2 Tools v1.2
SYMPTOM: NA
ISSUE/PROBLEM
NetWare LU6.2 supports two IBM LU6.2 programming interfaces: CPI-C (Common Programming Interface for Communications) and APPC (Advanced Program-to-Program Communication). CPI-C and APPC are two separate implementations of the SNA LU6.2 architecture. Many, but not all, of the APPC functions are included in CPI-C. Transaction programs using CPI-C can communicate with most of the CICS programs that use the APPC interface but there are some things that CPI-C does not support. For example, it does not support PIP (Program Initialization Parameters), Locks, Map_Name, FMH_Data and Synch_Point. CPI-C programs also do not control security.
SOLUTION
NA
FYI: Problem with GetBinderyObjectDiskSpaceLeft()
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with GetBinderyObjectDiskSpaceLeft()
DOCUMENT ID#: FYI.A.2828
DATE: 04FEB92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: UsedDiskBlocks is returned instead of UnusedDiskBlocks
ISSUE/PROBLEM
In the GetBinderyObjectDiskSpaceLeft() API, the value returned in the unusedDiskBlocks parameter is in fact the value for Used Disk Blocks of the specified object. The returned value also includes the Used Disk Blocks for all the volumes on the specified server.
SOLUTION
There is no work around available at this time.
FYI: Undefined Symbols, while Loading an NLM under NetWare 3.10 FYI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Undefined Symbols, while Loading an NLM under NetWare 3.10
DOCUMENT ID#: FYI.A.2827
DATE: 04FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: N/A
SYMPTOM: "Undefine Symbols-GetFileServerID and GetLanAddress" error
ISSUE/PROBLEM
If an NLM containing the API function, GetFileServerID, is loaded on a NetWare 3.10 server, an error will be returned saying the symbol "GetFileServerID" cannot be found. This is because in NetWare 3.10, this function is named GetCurrentConnectionID; the 'GetFileServerID' API was implemented under NetWare 3.11 and will not work under NetWare 3.10.
If the message, "Undefined Symbol for GetLanAddress" is returned under NetWare 3.10, then this function should not be used, because it is a brand new function implemented under NetWare 3.11 and does not work under NetWare 3.10.
SOLUTION
Use GetCurrentConnectionID instead of GetFileServerID under NetWare 3.10.
FYI: CLib GetVolumeNumber() Returns Garbage
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLib GetVolumeNumber() Returns Garbage
DOCUMENT ID#: FYI.A.1649
DATE: 04FEB92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: Gargadge is returned for a volume number
ISSUE/PROBLEM
GetVolumeNumber(), when called for a volume on a remote server, returns garbage for a volume number.
SOLUTION
Actually, the volume number is returned in the first byte. The remainder of the 2-byte integer, however, is not cleared, and contains the "old" information it had before the call. For example:
Source:
int volNumber = 0xFFFFFFFF;
GetVolumeNumber("SYS", &volNumber);
printf("0x%X\n", volNumber);
Output:
0xFFFFFF00
Just clear the volume number to 0's before making the call.
FYI: C Interface - Windows & IPXTaskID Values
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: C Interface - Windows & IPXTaskID Values
DOCUMENT ID#: FYI.A.2653
DATE: 03FEB92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What values can IPXTaskID be following IPXInitialize() or SPXInitialize calls?
In ENHANCED mode, it can be any value, but most likely will be the value that was passed into the initialize calls. It is not used and serves only as a dummy parameter.
In STANDARD and REAL modes, it is still required and needs to be used.
SOLUTION
NA
FYI: System Calls & SetCapturePrintQueue
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: System Calls & SetCapturePrintQueue
DOCUMENT ID#: FYI.A.2652
DATE: 03FEB92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a documentation error for the SetCapturePrintQueue system call. The DL register must be set to the server connection ID for the server that contains the specified queue.
SOLUTION
NA
FYI: Unresolved Externals _end and _edata
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unresolved Externals _end and _edata
DOCUMENT ID#: FYI.A.1648
DATE: 30JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When linking, using NLMLINK, the linker reports two unresolved externals: _end and _edata.
SOLUTION
Link in OPRELUDE.OBJ instead of PRELUDE.OBJ if using NLMLINK. Both OPRELUDE.OBJ and NLMLINK are supplied on SDKa, NOT SDKb. But, a number of programmers who have SDKb are still using NLMLINK. It seems WLINK supplies these externals at link time and they are required by PRELUDE.OBJ, while NLMLINK does not supply them, and hence, OPRELUDE.OBJ must be linked in instead.
FYI: WATCOM C/386 Compiler Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WATCOM C/386 Compiler Documentation Error
DOCUMENT ID#: FYI.A.1647
DATE: 30JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The WATCOM C/386 manual, "Optimizing Compiler and Tools User's Guide" has an error in it on page 38. A predefined macro, __NETWARE_386__, is described as being defined by the Novell/WATCOM C SQL Compiler. These manuals ship with version 8.5 of the Watcom Compiler, which does NOT include Embedded SQL, and this was the only time this macro was defined in the past.
SOLUTION
If you need to determine if your code is being compiled by the Watcom C/386 compiler, check for the __386__ and __WATCOMC__ macros to be defined as follows:
#if defined(__WATCOMC__) && defined(__386__)
// special code goes here
#endif
FYI: EMSNETX Bug
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: EMSNETX Bug
DOCUMENT ID#: FYI.A.1645
DATE: 30JAN92
PRODUCT: EMSNETX
PRODUCT VERSION: 3.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Under certain conditions, file writes using EMSNETX v3.22 can become corrupted. Specifically, this happens when the buffer being written from/to is in EMS memory, as well as the buffers the shell is using. The error usually does not occur right away, but instead it occurs within one or two hours, with one to six bytes typically being corrupted each time.
SOLUTION
Set CACHE BUFFERS=0 in NET.CFG or SHELL.CFG or don't use the EMS shell, to keep this from occurring.
FYI: ChangeBinderyObjectPassword() as a Supervisor or Equivalent
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ChangeBinderyObjectPassword() as a Supervisor or Equivalent
DOCUMENT ID#: FYI.A.1316
DATE: 29JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Suppose a user with supervisor equivalence or a supervisor wants to change a user's password using the APIs. The use of ChangeBinderyObjectPassword() requires the old password as an input parameter.
SOLUTION
Using the ChangeBinderyObjectPassword() and passing NULL as the old password parameter will work as follows...
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
In the documentation of ScheduleSleepAESProcessEvent, under the heading of Syntax, the function name is mentioned as ScheduleNoSleepAESProcessEvent.
SOLUTION
It should be ScheduleSleepAESProcessEvent.
FYI: CLib rename() Failure
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLib rename() Failure
DOCUMENT ID#: FYI.A.1646
DATE: 28JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The rename() function returns 0xFF when trying to rename directories on remote 2.x servers when the new directory name includes an extension. This is somewhat similar to the problem with mkdir() not making remote 2.x directories with extensions.
SOLUTION
NA
FYI: LoginToFileServer() Password
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LoginToFileServer() Password
DOCUMENT ID#: FYI.A.2933
DATE: 27JAN92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When calling LoginToFileServer() which uses the NWCONN.DLL for the Windows SDK, a developer can specify a password for the user he is trying to login as. However, the developer MUST specify the password all in UPPER CASE. If not, a 255 error will be the return code from LoginToFileServer().
SOLUTION
NA
FYI: No Warm Boot Warning On AST 386
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: No Warm Boot Warning On AST 386
DOCUMENT ID#: FYI.P.5846
DATE: 24JAN92
PRODUCT: NetWare Lite
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: No Warm Boot Warning On AST 386
ISSUE/PROBLEM
The warning message was not being presented on the screen of the AST 386sx/20 machine booted as both client and server when CNTL ALT DEL was pressed.
SOLUTION
The ASTEMM.SYS memory manager has a parameter called NOXRAM=ON that had been engaged in the CONFIG.SYS. When that was removed the NetWare Lite warning message was able to function normally. This parameter was described as enabling usage of memory in continuous blocks. The consequences of disabling this parameter are unclear but seem minor in this case.
I discussed this with AST and they told me that a BIOS upgrade should fix this problem also. Another note, I guess the early AST machines didn't do their shadowing in place. NOXRAM = ON forces the shadowing to be performed in place. So the consequences are that if you shadow in place you will help eliminate some software incompatibilities that appear when you don't shadow in place.
FYI: "System Was Unable To Load Overlay File"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "System Was Unable To Load Overlay File"
DOCUMENT ID#: FYI.P.5321
DATE: 24JAN92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Getting this error when trying to run any utilities.
SOLUTION
The customer was changing his short machine name to 110. We had him change it to IBM and everything is great.
FYI: "Binderies Have Already Been Restored"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Binderies Have Already Been Restored"
DOCUMENT ID#: FYI.P.5307
DATE: 23JAN92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Getting error "Binderies have already been restored" when running Upgrade.
ISSUE/PROBLEM
A customer used upgrade to copy an existing NetWare v2.2 file servers' binderies to a trial v3.11 fs to see if the client liked v3.11. During the trial period the client deleted and changed the bindery objects around using syscon. Then the client wanted the v2.2 file server fully transferred to the v3.11 file server. But when they tried to transfer the binderies again using Upgrade they would see the above error.
SOLUTION
Upgrade creates a file in the sys:system directory called upgr$000.bmf to track the upgrade procedure. Renaming this file allowed them to re-transfer the v2.2 binderies using upgrade.
FYI: Patch311 Functions Documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Patch311 Functions Documentation
DOCUMENT ID#: FYI.A.3829
DATE: 23JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In Network C for NLMs SDK v2.0b documentation updates, it mentions that PATCH311.NLM's new functions are documented in chapter 38 of the NLM Library Reference, Volume II. However, these functions are not in that chapter.
SOLUTION
PATCH311.NLM's new functions are documented in "Network C For NLMs SDK V2.0 (b) Documentation Updates."
FYI: SPXEstablishConnection Trashes Stack
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SPXEstablishConnection Trashes Stack
DOCUMENT ID#: FYI.A.3828
DATE: 23JAN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A call to SPXEstablishConnection() through system calls trashes some of the variables on the stack.
SOLUTION
SPXEstablishConnection() uses the bp register for its use. Therfore, make sure to push this register before calling this function, and then pop it after the call. The documentation does not mention this.
FYI: Small Memory Model Applications Accessing Local Btrieve Files.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Small Memory Model Applications Accessing Local Btrieve Files.
DOCUMENT ID#: FYI.A.2107
DATE: 22JAN92
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When running a Btrieve Windows application utilizing both the requester and local DLLs, after accessing local files, any subsequent Btrieve operation to files that reside on the server will cause the local DLL to be used.
This can be verified using the VERSION command in BTRTOOLS. Before executing the Btrieve Windows application, execute the VERSION command; it should show both the local and requester DLL versions. Once the application accesses a local file, suspend the application and load BTRTOOLS and execute the VERSION command again. The local DLL version will be the only version shown if the problem is occurring.
Although this problem is difficult to detect, it will usually show up in a situation where another DOS application is trying to access the same file on the server that the Btrieve Windows application is trying to access and one of the applications is getting a status 85 or status 94.
SOLUTION
The problem is with the local Btrieve for Windows DLL and it will only surface when the Btrieve Windows application is compiled with the Small Memory Model (i.e. applications written in MicroSoft Visual Basic). As you can easily determine, the problem is not reproducible with BTRTOOLS. This problem can be fixed by running DEBUG on the local DLL and paging down until you see the name WBTRCALL on the right. Simply edit the bytes on that line and change this to read WBTRLOCL. However, once this local DLL is modified, it cannot be used unless it is used for both local file and server file access in combination with the requester DLL.
FYI: Standard Mode IPX/SPX
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Standard Mode IPX/SPX
DOCUMENT ID#: FYI.A.2651
DATE: 20JAN92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a problem using IPX/SPX calls in Standard Mode for Windows. A Windows Timer is being used for call back processes that are used to simulate TBMI/TASKID communications. The Timer is not killed during the tear down of an SPX connection, thus resulting in a UAE in some cases. It depends on how timely the call back is. What that means is that for some applications, this will not pose a problem in that the Deinit API used to kill any resources will successfully kill everything. Other times the call back may occur following the Deinit...and thus resulting in a UAE.
SOLUTION
If this occurs in Standard mode, NWIPXSPX.DLL should be loaded explicitly. This will not let Windows unload the DLL when all applications are finished using it.
FYI: SpecifyCaptureFile and error 152
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SpecifyCaptureFile and error 152
DOCUMENT ID#: FYI.A.2650
DATE: 20JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The SpecifyCaptureFile is returning error 152 for any path specified. All variations of the path were tried, with and without the server name, different '\' or '/', etc. Nothing altered the outcome.
SOLUTION
NA
FYI: AIO Drivers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: AIO Drivers
DOCUMENT ID#: FYI.A.4110
DATE: 17JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The AIOWNIM driver that went out with SDKB will reboot the server occasionally when loaded. There is no work around for this.
SOLUTION
There are a new set of drivers that have been put up on CompuServe under NOVLIB. The name of the file is AIO.ZIP.
FYI: AIO WNIM Driver
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: AIO WNIM Driver
DOCUMENT ID#: FYI.A.4109
DATE: 17JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When you try to load the AIOWNIM driver with Mem = 0D000H, the server sometimes abends or even reboots.
SOLUTION
Try loading the driver with Mem = 0D0000H. This seems to be a problem with NetWare 3.11 which requires a 32 bit address.
FYI: Unrecognized Externals At Link Time
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Unrecognized Externals At Link Time
DOCUMENT ID#: FYI.A.3353
DATE: 17JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 20b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
After loading Patch311 and using two new functions documented in the patch documentation the developer receives "unrecognized externals" at link time. The names of the two functions are RenameThread and GetThreadName.
SOLUTION
Define the two functions as imports either when you link your NLM or in the CLIB.IMP file. The recommended procedure is to import the functions into your own NLM.
FYI: Watcom Patch Requires Definition of _argc
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watcom Patch Requires Definition of _argc
DOCUMENT ID#: FYI.A.3352
DATE: 15JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: Unrecognized external _argc received at link time.
ISSUE/PROBLEM
Watcom changed the way they were handling the _argc parameter between patch levels C & D of the Watcom 8.5 compiler.
SOLUTION
Define argc as a global variable.
Example:
int _argc;
FYI: Using the Version Option and the Copyright Option
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using the Version Option and the Copyright Option
DOCUMENT ID#: FYI.A.2932
DATE: 15JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Both the WATCOM help page and the Novell/WATCOM linker documentation are slightly incorrect.
1) Page 3-3 of the Linker User's Manual states that both COPYRIGHT and VERSION are directives as compared to options.
2) Page 3-7 also repeats this, and indicates the use of double quotes.
3) Page 3-31 also repeats that VERSION is a directive. It would seem that this is NOT so.
4) The help information from WLINK indicates that the VERsion 'VER' short form can be used; this does not seem to be the case.
The correct way to use the VERSION AND THE COPYRIGHT OPTIONS are:
OPTION VERSION=2.10
OPTION COPYRIGHT 'My Copyright Information'
SOLUTION
NA
FYI: Accessing a File on a Remote Server from an NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Accessing a File on a Remote Server from an NLM
DOCUMENT ID#: FYI.A.2931
DATE: 15JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When a developer loads his NLM on a host server, his NLM will automatically get assigned to connection zero (no restrictions). If an NLM needs to connect to a remote file server, the NLM must log in as a bindery object. An NLM will not be allowed to have connection zero on the remote server since it will be a security hazard.
SOLUTION
NA
FYI: Sending Broadcast Message From Non-dedicated Servers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Sending Broadcast Message From Non-dedicated Servers
DOCUMENT ID#: FYI.A.3827
DATE: 14JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Broadcast messages from an IPX application running on a non-dedicated 2.x server was not working. It works fine if it is running from a workstation.
SOLUTION
Non-dedicated servers have their own logical LAN E. So when the application was broadcasting, it was sending messages to the nodes through LAN E and not LAN A. There are no nodes connected to LAN E. Therefore, the application has to read the network address of the non-dedicated server from the bindery, and put that address in the network field of IPXHeader. The network address can be read through the ReadPropertyValue() and the property would be NET_ADDRESS of the non-dedicated server.
The reason that application was working fine from a workstation was because it was broadcasting through LAN A.
FYI: Registering the File Size While the File is Open
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Registering the File Size While the File is Open
DOCUMENT ID#: FYI.A.2930
DATE: 14JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetWare will not update a file size after each write to the file. The file size will be updated after the file is closed. You can tell NetWare to update the file size while the file is in an open mode. You will need to call the DosCommit function (16h) and pass it the file handle in the BX register. This will update the file size. The above will only work when using NetWare 3.11 and 3.22 shell (NETX).
SOLUTION
NA
FYI: Console is Unlocked by NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Console is Unlocked by NLM
DOCUMENT ID#: FYI.A.3137
DATE: 13JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If an NLM exits on its own while the file server console is locked with the MONITOR NLM, the MONITOR screen is destroyed and the console is unlocked.
SOLUTION
NA
FYI: Read from Address 8 During Shutdown
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Read from Address 8 During Shutdown
DOCUMENT ID#: FYI.A.3136
DATE: 13JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If an NLM exits due to control C being hit, a read from address 8 will be performed. If the BREAK0 NLM is loaded, the Internal Debugger will be entered.
SOLUTION
You can just type 'g' <ENTER>, and ignore the read. No side effects will occur.
FYI: Redefining an Imported Symbol and WLINK
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Redefining an Imported Symbol and WLINK
DOCUMENT ID#: FYI.A.3135
DATE: 13JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: FYI.A.3134
SYMPTOM: NA
ISSUE/PROBLEM
The problem where WLINK always resolves symbols with anything imported, even if you have the symbol defined in one of your OBJs, has been fixed by WATCOM.
SOLUTION
Download Patch Level E, C386_E.ZIP, from WATCOM's bulletin board.
FYI: Queue Job Names & NetWare 2.x & 3.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Queue Job Names & NetWare 2.x & 3.x
DOCUMENT ID#: FYI.A.2649
DATE: 09JAN92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
NetWare 386:
Queue directory is: Queue_ID.QDR (as in bindery ID)
Each Job entry is:
The first 4 characters are 2 hex values for the Queue ID, but are swapped.
The next 4 characters represent the job number (right justified) and with the extension '.Q'.
Example: Queue id = 08010015
Directory is 08010015.QDR
Jobs are in this directory with names:
01080001.Q 01080002.Q....etc
SOLUTION
N/A
FYI: GetConnectionID Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetConnectionID Documentation Error
DOCUMENT ID#: FYI.A.2648
DATE: 09JAN92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A minor documentation error exists for the GetConnectionID API for both the C Interface for DOS and C Interface for Windows. The return code 248 represents NOT_ATTACHED_TO_SERVER, whereas the documentation states that it is ALREADY_ATTACHED_TO_SERVER.
SOLUTION
NA
FYI: ChangeQueueJobEntry() Return Codes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ChangeQueueJobEntry() Return Codes
DOCUMENT ID#: FYI.A.1644
DATE: 09JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
ChangeQueueJobEntry() does not return 0xD7 (Q_SERVICING) when the job entry being modified is being serviced. Instead, it returns 0x00.
SOLUTION
Just remember that a job's status cannot be changed while the job is being serviced.
FYI: Status 19 and GetNextExtended
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 19 and GetNextExtended
DOCUMENT ID#: FYI.A.3351
DATE: 08JAN92
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 19
ISSUE/PROBLEM
If a developer issues a GetNextExtended (Operation 36) after a key-only GetGreaterThanOrEqual (operation 59) Btrieve returns a status 19.
SOLUTION
Currently the only work-around is to use a GetGreaterThanOrEqual without the key-only bias.
FYI: CLIB Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB Documentation Error
DOCUMENT ID#: FYI.A.2929
DATE: 08JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK 2.00b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is documentation error in the NLM SDK 2.00(B). Page 22-36 of VOLUME II in the manual mentions the ScanFileInformation() function. This function does not exist; you will need to use the stat() or the readdir() functions instead to get the file information.
SOLUTION
NA
FYI: When SynchronizeStart() must be Called
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: When SynchronizeStart() must be Called
DOCUMENT ID#: FYI.A.2928
DATE: 08JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.00
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you use the SYNCHRONIZE OPTION, YOU MUST call the SynchronizeStart() function as soon as possible in your code, otherwise the console command process will not load and you will not be able to enter any command on the file server. The only thing that you will be allowed to do is switch between screens. This function is only supported under NetWare 3.11.
SOLUTION
NA
FYI: Windows SDK & IPXGetInternetworkAddress
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK & IPXGetInternetworkAddress
DOCUMENT ID#: FYI.A.2647
DATE: 08JAN92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The IPXGetinternetworkAddress returns garbage when IPX/SPX is initialized with 0 maxECB's (meaning that the application will deal with controlling its ECB's directly - not relaying the NWIPXSPX.DLL & optionally VIPX.386). It works fine if the IPX/SPX initialize was carried out with any number of maxECB's other than 0.
SOLUTION
There is no workaround at this time.
FYI: Windows SDK & GetServerAddressTable
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK & GetServerAddressTable
DOCUMENT ID#: FYI.A.2646
DATE: 08JAN92
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetServerAddressTable API in the diagnostic services returns the table with most of it NULLed out.
SOLUTION
There is no workaround at this time.
FYI: "Error Receiving From Network" PRINTCON.EXE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Error Receiving From Network" PRINTCON.EXE
DOCUMENT ID#: FYI.P.5127
DATE: 07JAN92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Executing PRINTCON.EXE and two other 3rd party applications resulted in the error "Error receiving from Network".
Only these 3 applications would see the problem. All other NetWare Utilities ran fine as did other applications. There were no random occurrences of the error message. It only happened upon executing these files.
After checking for obvious lan problems, we looked into file corruption, viruses, bindery problems, regenned the OS etc. All to no avail. Finally we returned to the lan hardware.
SOLUTION
The customer was using Ethernet twisted pair. The Synoptics concentrator had a bad connection. Regardless of whether the connection was cabled to a node or not, the error would occur if there was a cable plugged into it. Works great as long as he doesn't plug a cable into this connection.
FYI: Synchronization in NetWare Name Service
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Synchronization in NetWare Name Service
DOCUMENT ID#: FYI.A.3826
DATE: 07JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In NetWare Name Service, if a user is modified on one server in the domain, this change is supposed to be replicated on every server throughout the domain, synchronizing the Name Service database. However, sometimes it does not.
SOLUTION
The servers in a domain are synchronized if the users, profiles and their properties are the same on all servers in the domain. Also if a server in the domain is down while changes are made on the other servers, the domain is unsynchronized when the server is brought back up. In that case, NETCON can be used to resynchronize the domain.
FYI: NETCON vs. SYSCON
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NETCON vs. SYSCON
DOCUMENT ID#: FYI.A.3825
DATE: 07JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Password for a newly created user through SYSCON was not being synchronized in NetWare Name Service.
SOLUTION
If you are using NetWare Name Service, do not use SYSCON. Instead, use NETCON (NETwork CONfiguration). NETCON is a utility that comes with NetWare Name Service. NETCON contains the same functionality as SYSCON plus additional functionality for controlling and synchronizing Name Service domains and profiles.
FYI: Changing Network Number, NetWare For VMS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Changing Network Number, NetWare For VMS
DOCUMENT ID#: FYI.P.5118
DATE: 06JAN92
PRODUCT: NetWare for VMS
PRODUCT VERSION: v2.1
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A customer wanted to change their network number without reinstalling NetWare.
SOLUTION
In the NWVMS$SPECIFIC directory, edit the files NW_DEF_CONFIG.COM (look for an entry labeled def_network_number) and NW_LOAD_DRV.COM (look for an entry labeled /network). Each of these two entries has a number within quotations that is the network number.
The file NW_DEF_CONFIG.COM is actually just a record of the configuration you selected when you installed NetWare for VMS. It does not affect the operation of NetWare for VMS. When you changed the network address, the only file that really need to be changed is NW_LOAD_DRV.COM. Of course, you would want to change NW_DEF_CONFIG.COM to maintain an accurate record of the configuration of your server for future upgrade. One more thing, after you change the file NW_LOAD_DRV.COM, you will need to reload the QX (???) driver which might involve the rebooting of the VAX.
FYI: Preferred Server Timeout Patch In SHELL.CFG
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Preferred Server Timeout Patch In SHELL.CFG
DOCUMENT ID#: FYI.P.5109
DATE: 06JAN92
PRODUCT: NetWare
PRODUCT VERSION: v3.11, v2.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In this situation a client had a preferred server specified in his SHELL.CFG. He would have to run NETX 4 times before it would get a connection. The three other attempts would yield: "Unknown file server."
SOLUTION
Applied this patch. In the SHELL.CFG they put:
patch = 58933, 131
patch = 58934, 193
patch = 58935, 10
Now they only had to run NETX 2 times to get a connection. We figured since it improved the number of attempts we would try changing the '10' in the patch to a '20' indicating a longer tic buffer zone. It worked.
FYI: "File Server Not Found" Binding IPX In AUTOEXEC.NCF
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "File Server Not Found" Binding IPX In AUTOEXEC.NCF
DOCUMENT ID#: FYI.P.5101
DATE: 06JAN92
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Getting "A file server could not be found".
ISSUE/PROBLEM
Customer was installing this big 10BaseT system with NetWare v3.11. They said they had five other systems just like this and they all worked except this one (Only difference from the others, this one was a 10 user version). Tried Comcheck and it worked great on server and workstation so cabling and concentrator was fine. After going through all the options we ran out.
SOLUTION
After all the problems, it boiled down that the customer did not have the IPX bound in the AUTOEXEC.NCF. After binding, the workstation came up fine.
When getting "A File Server could not be found" error in NetWare v3.1x, the first thing you should do is CONFIG at the file server. CONFIG will tell you if IPX has been bound to the lan card or not.
FYI: Print Services Specifications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Print Services Specifications
DOCUMENT ID#: FYI.A.4108
DATE: 06JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Following are the specifications for three files that are created by the Print Server. The files are 1) PRINT.00X 2) QUEUE.00X & 3) NOTIFY.00X. These files are located under the SYS:\SYSTEM\PRINTERSERVERID directory of the Print Server. The extension depends on the Queue Number in sequence.
QUEUE.000
---------
struct /* Queue to be serviced structure */
{
BYTE name[48]; /* Name of queue */
BYTE priority; /* Priority of this queue */
} queue;
NOTIFY.000
---------
struct /* Object to be notified structure */
{
BYTE name[48]; /* Name of object */
WORD type; /* Type of object */
intial, /* Time before first notice */
repeat; /* Time between notices */
} notify;
PRINT.000
---------
struct
{
char name[48]; /* Name of printer */
WORD printerSubtype, /* Subtype of printer */
useInterrupts, /* Use interrupts or polling? */
irqNumber, /* IRQ number for printer interrupt */
serviceMode, /* Queue service mode */
buffersize, /* Buffer size in K */
baudRate, /* Baud rate (Serial only) */
dataBits, /* Data bits (Serial only) */
stopBits, /* Stop bits (Serial only) */
parity, /* Parity type (Serial only) */
useXonXoff, /* Use X-On/X-Off protocol? (Serial Only) */
currentForm; /* Currently mounted form */
} PCONFIG;
SOLUTION
This information should be distributed to those that require the specifications of these files.
FYI: CheckIfScreenDisplayed() Blocks NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CheckIfScreenDisplayed() Blocks NLM
DOCUMENT ID#: FYI.A.3824
DATE: 06JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If CheckIfScreenDisplayed() is called with the waitFlag TRUE, and then the NLM is unloaded from the command line, a console message appears stating
"ThreadID = XXXXX is currently waiting on a screen to be displayed.
Please cycle through the screens with Alt-Esc."
In other words, all the resources are not being freed when the NLM is unloaded from the command line.
SOLUTION
The NLM will be unloaded when the screens are cycled and the screen on which the thread was waiting becomes the current screen.
The other workaround would be to make that screen the current screen in the SIGTERM function.
FYI: The Disappearing File Server Console Prompt
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The Disappearing File Server Console Prompt
DOCUMENT ID#: FYI.A.2927
DATE: 06JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you use the SYNCHRONIZE OPTION in your NLM link file, it will cause your file server screen and all other screens to lose their console prompts. The console prompt will be blank.
SOLUTION
NA
FYI: Redefining an Imported Symbol and WLINK
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Redefining an Imported Symbol and WLINK
DOCUMENT ID#: FYI.A.3134
DATE: 03JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you redefine any imported symbol in your NLM, WLINK will always resolve any references to that symbol made by your NLM to the imported symbol. This bug re-appeared in the (b) version of the SDK, as it had been fixed for (a).
SOLUTION
Remove the symbol you wish to redefine from the import file or symbol list, or rename the symbol.
FYI: Using WLINK Option CHECK
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using WLINK Option CHECK
DOCUMENT ID#: FYI.A.3133
DATE: 03JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you are using the linker option CHECK with WLINK, and your check function is placed at offset 0 in the code segment, it will NOT be called if your NLM is unloaded.
SOLUTION
Relink your NLM and specify PRELUDE.OBJ as the first object module to be linked.
FYI: How to Find Out if your Console is a Color Monitor
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How to Find Out if your Console is a Color Monitor
DOCUMENT ID#: FYI.A.2926
DATE: 03JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
You can find out whether the console or your file server is a color monitor, by calling the IsColorMonitor() function. This function call is only supported under PATCH311.NLM. You will need to import the function call in your def or link file. The function then will be exported to your CLIB.
SOLUTION
NA
FYI: HOMEDIRPATH Property
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: HOMEDIRPATH Property
DOCUMENT ID#: FYI.A.1643
DATE: 03JAN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What is in the HOMEDIRPATH property that only the SUPERVISOR user has?
SOLUTION
The HOMEDIRPATH property contains the home directory path! Specifically, this is a 2 segment property that contains the parent directory under which user subdirectories will be created when creating the user via SYSCON.EXE. The property is 2 segments long so that the path can be larger than 128 bytes (the size of one segment). The first occurence of an ASCII zero (0x00) indicates the end of the path name (just like in C). If the second property is not needed, it will contain an ASCII zero in the first byte. This property is only used by SYSCON.EXE when it belongs to user SUPERVISOR.
FYI: No Free Connection Slots Available, Turbo ISADISK
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: No Free Connection Slots Available, Turbo ISADISK
DOCUMENT ID#: FYI.P.5091
DATE: 02JAN92
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Getting "No free connection slots available".
ISSUE/PROBLEM
Had a 50 user version running nondedicated in a 286 box. After they pulled the controller, drive, and Thomas Conrad NIC out of the 286 and putting them in a 486 ALR POWERFLEX the nondedicated w/s was the only one that could log in. Other w/s would get the above message, regardless of whether the nondedicated w/s was logged in or not.
SOLUTION
Had an option for TURBO ISADISK in the setup of the file server. Disabled this and the w/s were able to get connections to the server.
FYI: Forcing NLM's not to Unload...
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Forcing NLM's not to Unload...
DOCUMENT ID#: FYI.A.2645
DATE: 02JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you ever wanted to force your NLM not to unload here's a possible approach:
1) Specify the CHECK option in your LNK file, giving it a name of a
function that will be called on an unload attempt. A prompt from the
loader will expect a 'Y/N' response. Forcing a 'N' & 'CR' will force
the No response and the NLM will not unload.
ex: option check=NWNoUnload
2) Place the following routine into your code that will push characters
3) Since this will cause your NLM's not to unload you MUST provide an
alternate method. You will need to register a command processor using
the RegisterConsoleCommand API.
SOLUTION
NA
FYI: Renaming Directories
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Renaming Directories
DOCUMENT ID#: FYI.A.1642
DATE: 02JAN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: v1.0
SUPERSEDES: NA
SYMPTOM: Permission denied
ISSUE/PROBLEM
Current versions of the NetWare shell (up to 3.22) do not handle renaming of directories on mapped drives exactly like DOS. Normally, DOS function 56h accepts directory names as valid parameters and will correctly rename these directories, even if both the source and destination include a full path to the directory name. The NetWare shell, however, does not correctly handle the case when both the source and destination contain a full path. It returns permission denied. On the other hand, if the destination is only a directory name, this works with NetWare and fails under DOS! Following is an example of output from RENAM.EXE, a program that uses DOS function 56h to rename the first argument to the second argument (C: is a local drive and F: is a NetWare mapped drive):
RENAM C:\XXX\XXX C:\XXX\YYY -> successful
RENAM C:\XXX\XXX YYY -> permission denied
RENAM F:\XXX\XXX F:\XXX\YYY -> permission denied
RENAM F:\XXX\XXX YYY -> successful
Notice how the method for renaming that succeeds for local drives is the method that fails for remote drives, and visa versa. The local drive version with no second path will work, however, if the current directory is the parent of the directory to be renamed.
SOLUTION
There is no solution at this time. The best thing to do is either change to the parent directory before renaming its subdirectry, or check to see if the device is a NetWare device and handle the rename differently based on the device (use GetDriveInformation()).
FYI: CLIB stat() and Archive Date and Time
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB stat() and Archive Date and Time
DOCUMENT ID#: FYI.A.1641
DATE: 02JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The stat() function in CLIB.NLM returns garbage for the archive date and time.
SOLUTION
Use readdir().
FYI: LPTCaptureFlag and SetCapturePrintQueue
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LPTCaptureFlag and SetCapturePrintQueue
DOCUMENT ID#: FYI.A.1640
DATE: 02JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using Print Services, calling SetCapturePrintQueue to a new print server will confuse the shell into thinking you are capturing to a new queue on the original print server.
SOLUTION
Set the flag CAPTURE_FLAGS.LPTCaptureFlag to 0 before calling SetCapturePrintQueue. This flag tells the shell to ignore the previous queue setting because you are no longer capturing.
Keep in mind, that you should be using CAPTURE_FLAGS for both the Get and Set flags functions, instead of using SET_CAPTURE_FLAGS for the Set functions.
FYI: CLIB and NW 2.x Extended Attributes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB and NW 2.x Extended Attributes
DOCUMENT ID#: FYI.A.1639
DATE: 02JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In CLIB, there is currently no method for correctly returning the extended attributes of files residing on NetWare 2.x file servers. The functions stat(), readdir(), and GetExtendedFileAttributes() all fail to return the extended attributes from remote, 2.x servers.
SOLUTION
Currently, there is no work around.
FYI: CLIB and 2.x Directory Hidden/System Attributes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB and 2.x Directory Hidden/System Attributes
DOCUMENT ID#: FYI.A.1638
DATE: 02JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is currently no way of setting the System or Hidden Attributes of NetWare 2.x directories from CLIB.
SOLUTION
Currently, there is no workaround.
FYI: CLIB and AFPGetFileInformation Backup Time
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB and AFPGetFileInformation Backup Time
DOCUMENT ID#: FYI.A.1637
DATE: 02JAN92
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
AFPGetFileInformation returns garbage for the backup time.
SOLUTION
Use readdir().
FYI: Critical Errors While Capturing
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Critical Errors While Capturing
DOCUMENT ID#: FYI.A.1636
DATE: 02JAN92
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: Network Error on Server...
ISSUE/PROBLEM
Even after installing your own critical error handler, the message:
Network Error on Server ANY-SERVER: Error receiving from network.
Abort, Retry?
may still show up on your screen. Specifically, this will happen while printing to a CAPTURED lpt port when a network connection is lost (like unplugging the cable to the NIC).
SOLUTION
Under this version of the shell, and previous versions as well, a critical error occuring within print capturing is considered "network critical" and is not passed to the standard critical error handler. Currently, there is no work around.
FYI: SPXListenForConnection Documentation Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SPXListenForConnection Documentation Error
DOCUMENT ID#: FYI.A.1635
DATE: 02JAN92
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The C Interface for DOS and Windows documentation has a line in it that is not clear. The line says: "The ECB passed to this function does not need packets or fragments associated with it."
SOLUTION
This does not mean the fragment count should be set to 0. It should, instead, be set to 1, with the only fragment being the SPX header.
FYI: Save/Restore Directory Handle APIs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Save/Restore Directory Handle APIs
DOCUMENT ID#: FYI.A.3132
DATE: 30DEC91
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Save and Restore Directory Handle APIs are NOT supported on NetWare 3.x. The NetWare C Interface documents this, but the NetWare System Calls does not.
SOLUTION
Developers using Save/Restore APIs to "remember" drive mappings on a given workstation session will have to remember the entire path in order to have both a 2.x and 3.x solution.
FYI: OS/2 Problem with DIR
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2 Problem with DIR
DOCUMENT ID#: FYI.A.007
DATE: 30DEC91
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.3
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The DOS DIR command under OS2 seems to have some problems. It does not seem to find a file under the following scenario. If, for instance, you have 2 files, TEMP and TEMP.TXT, and did a DIR T*.*, it would list only the TEMP.TXT file.
SOLUTION
NA
FYI: Windows SDK 1.22 Documentation Errors
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK 1.22 Documentation Errors
DOCUMENT ID#: FYI.A.2925
DATE: 20DEC91
PRODUCT: Windows SDK
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The following documentation errors error can be found in the Windows SDK 1.22 manual, page 5-70. Several of the specifications for the possible completion codes when SPX calls the ESR are incorrect.
The manual indicates that the SPX_CONNECTION_TERMINATED first completion code should be (0x00). According to the NXT.H include file for the Windows SDK 1.22, it has the SPX_CONNECTION_TERMINATED as (0xED).
The manual specifies that the SPX_TERMINATED_POORLY third completion code should be (0xED). According to the NXT.H include file, it has the SPX_TERMINATED_POORLY as (0xEC).
The manual specifies that the TERMINATED_BY_REMOTE_PARTNER second completion code should be (0xEC). According to the NXT.H include file, the TERMINATED_BY_REMOTE_PARTNER does not exist.
SOLUTION
NA
FYI: Xtrieve PLUS and Status 259
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve PLUS and Status 259
DOCUMENT ID#: FYI.A.1743
DATE: 20DEC91
PRODUCT: Xtrieve Plus Network
PRODUCT VERSION: 4.x
SUPERSEDES: NA
SYMPTOM: Status 259 - Error inserting new dictionary file definition
ISSUE/PROBLEM
When defining or reorganizing a file with Xtrieve PLUS, it is not allowable to specify two fields with the same name; if this is attempted, a "Name already exists" error will be returned. However, this error checking does not catch two fields with the same name that are specified with different case; it will allow the user to enter fields such as: Name and NAME. However, when a file definition is set up with these fields, using Finished-Create or Finished-Don't Create will return an error "259 - Error inserting new dictionary file definition".
SOLUTION
Make sure all field names are unique, disregarding case.
FYI: Stack Corruption on Paths Larger than 255
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Stack Corruption on Paths Larger than 255
DOCUMENT ID#: FYI.A.3131
DATE: 19DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Several CLib functions declare a local stack variable for paths that is 255 bytes long. However, if you have a path larger than this, the path parser will overwrite the stack, and the server will most likely abend. Functions exhibiting this include __open() and opendir(). __open is the internal function used by all CLib file open APIs.
SOLUTION
Do not use paths larger than 255.
FYI: CLib Has Problem Adding 31.09 and 1.91.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLib Has Problem Adding 31.09 and 1.91.
DOCUMENT ID#: FYI.A.3130
DATE: 19DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you compile with /FPC, and try to add the numbers 31.09 and 1.91, the internal CLib helper function __FDA will yield 16.0.
SOLUTION
No solution at this time.
FYI: CLib Doesn't Unlink File Handle
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLib Doesn't Unlink File Handle
DOCUMENT ID#: FYI.A.3129
DATE: 19DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If an NLM is servicing a queue job, and someone removes the job from the queue, when the NLM attempts to abort servicing the job, CLib will not unlink the handle from it's internal list. This will cause memory not to be freed when the NLM is unloaded. However, if the NLM continues to open files, and the OS reuses its internal handle again, CLib will think that the NLM already has the new file open, and simply increment the open count and return the invalid handle. The NLM can never close the new file, and the file remains open until the NLM is unloaded.
SOLUTION
No solution at this time, other than unloading the NLM.
FYI: BUTIL -SAVE (or -RECOVER) to Floppy Disks
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BUTIL -SAVE (or -RECOVER) to Floppy Disks
DOCUMENT ID#: FYI.A.1920
DATE: 19DEC91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Can you do a BUTIL -SAVE (or -RECOVER) to floppy disks?
SOLUTION
Yes, you can. If you run out of space on the floppy diskette, you will be prompted for a new filename. At this point you can use a new floppy and a new filename (with drive letter and complete path). For example, when attempting a BUTIL -SAVE on a 10M file containing 13407 records, the message displayed when the diskette becomes full was:
2347 records saved so far.
Disk volume is full.
Enter new file name to continue or . to quit, then enter.
FYI: Loading a TSR from an Application
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading a TSR from an Application
DOCUMENT ID#: FYI.A.1919
DATE: 19DEC91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
How should you load a TSR from within your application?
SOLUTION
When loading a TSR (such as Btrieve) from within a C application, there will not be very much memory available (for instance malloc function calls will return NULLs). This is not always true...
If an application loads Btrieve using SPAWN and then does a MALLOC(5000) the MALLOC will fail. Then, if the application attempts to use SPAWN to unload Btrieve, that will fail also. If SYSTEM is used to load and unload Btrieve it works, but the MALLOC still fails (after about 60k).
The correct way to load TSRs and still have memory available for the application is as follows: say the application will need a maximum of 20k of memory. MALLOC 20k first, then load the TSR, then FREE the 20k. Now the application can MALLOC for its needs (because the 20k is free). Then you can unload the TSR. The application can also FREE the MALLOCs used by the application.
FYI: ALOGIN.ZIP and NULL Passwords
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ALOGIN.ZIP and NULL Passwords
DOCUMENT ID#: FYI.A.3128
DATE: 18DEC91
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a bug in the ALOGIN OBJ files that will cause a protected violation if a NULL ("") password is passed in, only if the buffer begins at offset 0 of any segment. This was found by a developer using the OBJ in a Windows application in enhanced mode. Obviously, the OBJs do not support the Windows environment, but this bug could also appear when used in the VAP environment.
SOLUTION
The only interim solution would be to allocate an extra byte on your password buffer, and start at position 2 in the buffer with your password. i.e. AsmLoginToFileServer(userName,OT_USER,&passWord[1]);
FYI: VAP ChangeProcess API Call Register Usage
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: VAP ChangeProcess API Call Register Usage
DOCUMENT ID#: FYI.A.3127
DATE: 18DEC91
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation for the Change Process VAP system call does not state that only register DS is preserved when the call returns. All other registers are destroyed.
SOLUTION
NA
FYI: Patches for WATCOM C386
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Patches for WATCOM C386
DOCUMENT ID#: FYI.A.3126
DATE: 18DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There are currently four patch levels available from WATCOM for C386 v8.5. They can be obtained from WATCOMs BBS @ 519-884-2103. Readme files with each patch level discuss the various problems which are fixed.
In order to create protected mode DOS applications which call Btrieve or the NetWare APIs, you will need to have all four patch levels installed.
SOLUTION
NA
FYI: NMPIPE.H File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NMPIPE.H File
DOCUMENT ID#: FYI.A.3823
DATE: 17DEC91
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.30a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Which file needs to be included in a client application: NMPIPE.H or OS2.H?
SOLUTION
If you have a DOS client, then you need to include NMPIPE.H file for DOS. If it is a WINDOWS client, then you need to include NMPIPE.H file for WINDOWS. However, if it is for an OS/2 client, then you need to include the OS2.H file.
FYI: NMPIPE.H File Compile Errors
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NMPIPE.H File Compile Errors
DOCUMENT ID#: FYI.A.3822
DATE: 17DEC91
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.30a
SUPERSEDES: NA
SYMPTOM: Compiler errors while compiling NMPIPE.H file
ISSUE/PROBLEM
On lines 65, 69, 71, and 74 of the NMPIPE.H file for DOS clients, there is a semicolon after the #define statement.
SOLUTION
There is a comment following the semicolon, so replace the semicolon with the comment delimiters (/* ... */).
FYI: ALOGIN.ZIP
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ALOGIN.ZIP
DOCUMENT ID#: FYI.A.3821
DATE: 12DEC91
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: AsmLoginToFileServer() does not login
ISSUE/PROBLEM
If a user is configured to have an expiration date for his password, and then a Supervisor or Supervisor equivalent changes that user's password, the expiration date is set to January 1, 1985. So the next time the user logs in with the Login utility, he is prompted to change his password.
However, if the same user is attempting to login through AsmLoginToFileServer, it returns 0xdf which is not documented as a successful code. In fact, it does login the user but returns 0xdf to indicate that the password has expired.
SOLUTION
Even though AsmLoginToFileServer() returns 0xdf, it still logs in the user. So 0xdf is also a successful code and means that the user's password has expired.
FYI: _get_CLK_TCK Symbol
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: _get_CLK_TCK Symbol
DOCUMENT ID#: FYI.A.3820
DATE: 12DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK b
SUPERSEDES: NA
SYMPTOM: "cannot find symbol _get_CLK_TCK" with NetWare 3.10
ISSUE/PROBLEM
_get_CLK_TCK is an internal function of CLIB V3.11. This function is not present in CLIB 3.10. Some of the CLIB v3.11 functions call _get_CLK_TCK(). So, if an NLM was compiled with SDK b, it might not load on a 3.10 server depending on whether those CLIB functions are being called or not.
The solution to this is to write an NLM that exports this symbol and returns 100; then, to autoload this NLM in the 3.10 environment before loading your NLM. The reason that the autoloaded NLM should return 100 is because in CLIB 3.10 the equivalent of _get_CLK_TCK() is a #define statement which is set to 100.
SOLUTION
NA
FYI: Calling NetBios Function ASYNC_RECEIVE_ANY
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling NetBios Function ASYNC_RECEIVE_ANY
DOCUMENT ID#: FYI.A.2924
DATE: 12DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When calling the NetBios function ASYNC_RECEIVE_ANY (NCB COMMAND = 96), you will need to call NetBiosSubmit with EXCLUSIVE access mode and not REGULAR access mode. Otherwise you will receive error 0x05 as the NetBios result. Error 0x05 means access denied when attempting to submit RECEIVE_ANY NCB. Novell SDK NetBios documentation on page 29 fails to mention the 0x05 as return code for the NetBiosSubmit.
SOLUTION
NA
FYI: Calling NetBios Function RECEIVE_ANY_FROM_ANY
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling NetBios Function RECEIVE_ANY_FROM_ANY
DOCUMENT ID#: FYI.A.2923
DATE: 12DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
According to the IBM NetBios specifications the function RECEIVE_ANY_FROM_ANY (NCB COMMAND = 96) will look in the NCB_NUM field for FF value. However, the Novell NetBios driver emulator DOES NOT follow this format. The Novell NetBios driver emulator looks for * in the NCB_CALL_NAME instead.
SOLUTION
NA
FYI: Executing an OS/2 Batch File from an OS/2 Login Script
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Executing an OS/2 Batch File from an OS/2 Login Script
DOCUMENT ID#: FYI.A.2922
DATE: 12DEC91
PRODUCT: NetWare
PRODUCT VERSION: 3.x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Yes, you can execute an OS/2 batch file from your login script or from your system login script. You MUST use the Universal Naming Convention when specifying the path name for your batchfile.CMD. The following is an example of how you should write the command in your login script file.
#c:\os2\cmd /c \\server\vol\dir1\dir2\filex.cmd
You do not have to use the path for the cmd "C:\OS2\CMD", but you will need to make sure that the OS/2 directory is in your path variable.
SOLUTION
NA
FYI: ScanBinderyObjectTrusteePaths
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanBinderyObjectTrusteePaths
DOCUMENT ID#: FYI.A.3350
DATE: 10DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: Memory Corruption
ISSUE/PROBLEM
The NetWork C for NLMs SDK states that the trusteePathName returned by the call will return a maximum of 255 bytes. This is incorrect; up to 318 bytes may be returned when this call returns. The file server name, volume name and full path, not just the full path, will be returned.
SOLUTION
The character array for the trusteePathName should be defined as 318 bytes, instead of 255 bytes.
FYI: Dedicated IPX Versus IPXODI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Dedicated IPX Versus IPXODI
DOCUMENT ID#: FYI.A.3349
DATE: 10DEC91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
ODI and dedicated (linked) IPX have the same functionality. Everything should work fine. NetWare Lite will run on top of ODI or Dedicated IPX. Novell is moving away from dedicated IPX towards ODI. Our Independant Manufacturers Support Program (IMSP) group will not be certifying dedicated IPX drivers after June of 1992.
For Novell to help with specific problems, you will need to specifically tell us what is not working for you. You should direct your inquiries through Novell Austin Developer support (1-800-NETWARE).
What we are saying is that it should work the same regardless of whether it is dedicated IPX or ODI. The only two things that might possibly be problems are that the ODI cancel ECB function will return the error "I can't cancel at this time" where as dedicated would usually always cancel. This error is valid for both dedicated and ODI, however, you used to be able to do that without a socket open. Now it checks for an open socket before it will succeed (this was put in ODI and added to the latest dedicated IPX sometime earlier this year).
SOLUTION
NA
FYI: Btrieve Extended Operations
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Extended Operations
DOCUMENT ID#: FYI.A.3348
DATE: 10DEC91
PRODUCT: Btrieve for DOS/NLM/VAP
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: Status 62
ISSUE/PROBLEM
A status 62 is returned by Btrieve after the first extended call has been performed successfully.
SOLUTION
Since the descriptor information is stored as a union in C, or a redefinition in COBOL, this data gets overwritten by the output data buffer when the first extended call is issued. The descriptor information needs to be updated before each extended call.
FYI: PATCH311 and the sopen() O_BINARY Mode
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: PATCH311 and the sopen() O_BINARY Mode
DOCUMENT ID#: FYI.A.2921
DATE: 10DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you load PATCH311.NLM on your file server, you may notice that files are opened in binary mode, regardless of what you specify. This is due to the fact that the O_BINARY flag is hard coded in the underlying CLIB open API.
Example:
When calling a function like sopen(), if you pass the O_TEXT flag, it will be ignored. This is due to the fact the the O_BINARY gets set for you automatically. If you turn around and use the same file handle that you received from sopen() and pass it to fdopen(), you will need to specify that the file will be opened in binary mode. If you do not, fdopen() will attempt to open the file in TEXT mode, which will conflict with the way the file was originally opened.
SOLUTION
Currently, you cannot fdopen() a file descriptor in text mode. If you want to open a file in text mode, use fopen("file","r+t") instead.
FYI: Calling sopen() with O_CREAT and the SH_DENYRD
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Calling sopen() with O_CREAT and the SH_DENYRD
DOCUMENT ID#: FYI.A.2920
DATE: 10DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When calling sopen() with the O_CREATE mode, sopen() will ignore any of the share flags, like SH_DENYRW, if the file does not exist. CLIB was written in this manner to meet the recommended file I/O standard in other operating systems like OS/2.
SOLUTION
If the file does not exist, do not count on using any of the flags in the SHARE.H file.
FYI: TIRPC 1.0 and Latest Release for the NLM SDK B
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: TIRPC 1.0 and Latest Release for the NLM SDK B
DOCUMENT ID#: FYI.A.2919
DATE: 10DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NLM TIRPC 1.0 which is the latest release, was compiled and tested with the NLM SDK A. If you are using NLM SDK B (v2.0b) the NLM TIRPC examples will not work. This is due to the fact that the latest release for the SDK included all of the WATCOM compiler, which means that the directory structure naming convention for setting up the SDK B is different from NLM SDK A. Developers MUST read the README.DOC file that was supplied with their NLM SDK B and follow the new directory structure. The TIRPC folks are aware of the conflict between their current release of the NLM TIRPC 1.0 and the new NLM SDK B.
SOLUTION
If you are using the new NLM SDK B, be sure to read the README.DOC file first and set up your NLM SDK and the WATCOM compiler accordingly.
FYI: Attributes for Trustees
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Attributes for Trustees
DOCUMENT ID#: FYI.A.2644
DATE: 10DEC91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The ScanBinderyObjectTrusteePaths API does not return the correct trustee attributes for NetWare 3.x.
SOLUTION
Must follow the above call with an explicit call to ScanEntryForTrustees which does return the correct attributes. This creates more work but it does return the correct results.
FYI: GetDiskUtilization & NetWare 3.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetDiskUtilization & NetWare 3.x
DOCUMENT ID#: FYI.A.2643
DATE: 10DEC91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The 'usedblocks' value that is returned from the GetDiskUtilization API is not correctly returned for NetWare 3.x.
SOLUTION
To fix the problem carry out a WORD swap on the LONG value that is returned. i.e.: usedblocks = (usedblocks >> 16) | (usedblocks << 16);
This is not documented.
FYI: Login Scripts Under the OS/2 Operating System
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Login Scripts Under the OS/2 Operating System
DOCUMENT ID#: FYI.A.2918
DATE: 06DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The login script under the OS/2 environment is a little bit different than the DOS environment. Under OS/2, there are no search mappings allowed; you can only map network drives. All of your search mappings should be placed in your CONFIG.SYS under the PATH variable. If you use the INCLUDE command in your login script, you must follow the Universal Naming Convention that is supported under OS/2. For example:
INCLUDE \\TEST_SERVER\SYS\DIR1\DIR2\TEST.TXT
TEST.TXT will have some additional login script commands. You can execute any .EXE or .COM file from the OS/2 login script by using the # sign. For example:
#MAP
SOLUTION
NA
FYI: Brequest Hanging Problems in DOSBOX under Windows/VIPX.386
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest Hanging Problems in DOSBOX under Windows/VIPX.386
DOCUMENT ID#: FYI.A.1851
DATE: 05DEC91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.1x
SUPERSEDES: NA
SYMPTOM: Brequest Hanging in DOSBOX under Windows
ISSUE/PROBLEM
Brequest would hang in a DOSBOX in WINDOWS enhanced mode. With the release of VIPX.386 the hanging should not occur. VIPX.386 is available on Compuserve in the NOVLIB forum.
To use VIPX.386, a new IPX must be genned. Then, the SYSTEM.INI file should be modified: the section starting with [386enh] contains the line "network=". VIPX.386 should be added to this line.
For example:
[386enh]
network=vnetware.386,vipx.386
Windows will load the driver when Windows loads.
SOLUTION
NA
FYI: Substitution in SET Statement
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Substitution in SET Statement
DOCUMENT ID#: FYI.A.1850
DATE: 05DEC91
PRODUCT: NetWare SQL 386 NLM
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Using substitution in a SET statement is not legal. One cannot say
SET default State = @value
The documentation is not clear on this but it has been confirmed by development that it is not legal.
SOLUTION
NA
FYI: File Copying On 386 File Servers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: File Copying On 386 File Servers
DOCUMENT ID#: FYI.A.2916
DATE: 04DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When calling the function FileServerFileCopy() under the DOS API 1.21, you will need to input the numberOfBytesToCopy. If you need to copy the entire file you will need to set the numberOfBytesToCopy = 0xFFFFFFFF. This will eliminate the need to call another function like filelength(). Also, when you use the filelength() to get the filesize, it will double the size of the file.
SOLUTION
NA
FYI: Writing NLMs to Make Btrieve Calls
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Writing NLMs to Make Btrieve Calls
DOCUMENT ID#: FYI.A.1918
DATE: 04DEC91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What Btrieve interface should you use when writing an NLM to issue Btrieve calls?
SOLUTION
None. No interface is required because either 'btrv' or btrvID' is called, and these are both symbols exported by the Btrieve NLM.
FYI: Status -1 When Using MAKE_XTA.EXE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status -1 When Using MAKE_XTA.EXE
DOCUMENT ID#: FYI.A.1917
DATE: 04DEC91
PRODUCT: Xtrieve Plus Network
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When running the Xtrieve PLUS MAKE_XTA utility, you can get a status -1. What does this error code mean?
SOLUTION
It means you do not have XQL loaded.
FYI: NetWare C for NLM's & Time Zones
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare C for NLM's & Time Zones
DOCUMENT ID#: FYI.A.2642
DATE: 03DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Just a reminder: when setting the time zones on a file server and trying to use the 'time' functions, it should be done before loading CLIB. CLIB itself reads the time information only at load time.
If the time zone is set after CLIB is loaded, it must be reloaded in order for the new time zone to take effect.
SOLUTION
NA
FYI: COPY CON Creates 0 Byte File, DOS 5.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: COPY CON Creates 0 Byte File, DOS 5.0
DOCUMENT ID#: FYI.P.4821
DATE: 02DEC91
PRODUCT: NetWare
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: COPY CON Creates 0 Byte File, DOS 5.0
ISSUE/PROBLEM
If one were to create a file using COPY CON in a directory with Create rights only, one would be unsuccessful with DOS 5.0, but indeed successful with DOS 4.0 or DR DOS 6.0. The DOS 5.0 instance would allow the file to be created, but not allow anything to be written into it. The result of the COPY CON is a 0 byte file.
SOLUTION
DOS 5.0 requires that both Create and Write rights be present for the COPY CON command to perform as expected.
FYI: PATCH for PRELUDE.OBJ
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: PATCH for PRELUDE.OBJ
DOCUMENT ID#: FYI.A.006
DATE: 02DEC91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When testing NLMs using the Client/Server Application Testing Kit, there can be a problem caused by a call to the stack check function during NLM startup. A patch, PSTACK.TXT will NOP the call to __STK.
SOLUTION
The patch file, PSTACK.TXT will be available for download from CompuServe.
FYI: Problems with the 3.22 Shell
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problems with the 3.22 Shell
DOCUMENT ID: FYI.A.3347
DATE: 26NOV91
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: Files not closed even though close is issued.
ISSUE/PROBLEM
File handles inherited by a child process may not be closed when the parent process eventually closes them. No error is returned. This occurs due to a 3.22 shell bug that allows more that twenty file handles to be inherited by a child process. DOS restricts child processes to only inheriting twenty files. When the child inherits more that twenty file handles, it corrupts the DOS file handle table.
SOLUTION
Currently, the only solution is to not increase the size of the file handle table when spawning a child process. The next version of the shell will correct this problem.
FYI: Xtrieve and Lotus 123
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve and Lotus 123
DOCUMENT ID: FYI.A.2505
DATE: 26NOV91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Users trying to import dates into Lotus 123 using a file created by Xtrieve 4.10 using the "Translate to DIF" option, will find that the dates are off by one. This is because Xtrieve considers the magic date 01/01/1900 as day zero, whereas Lotus considers the same date as day one.
SOLUTION
Users can use a formula to subtract one from the date on the Lotus side to convert the data to the proper date.
FYI: PROTECT NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: PROTECT NLM
DOCUMENT ID#: FYI.A.005
DATE: 26NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0b
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If one NLM tries to read data from the code segment of another NLM, PROTECT NLM will catch this, when it should not. To reproduce this, compile a program using the /zc option. In the program, simply try to open a file. The /zc option would place the literal strings in the code segment.
SOLUTION
Currently there is no solution to this problem (i.e provided the program is compiled with the /zc option).
FYI: TTS and Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
There have been a few reports of Btrieve files being corrupted or of slow response from Btrieve in very large environments. These sites all had their Btrieve files flagged as transactional and were generally running very fast servers with large drives. One of the sites was running an EISA based server and the other was running a server with a microchannel bus with fast NIC cards installed.
Dirty cache was filling up at both of the above sites. When this occurred the cache would be flushed, but during this time no transactions were allowed to take place, thereby halting the Btrieve application. Network communications also slowed down considerably. The cache buffers were filling up because the server was being overwhelmed with TTS requests. A large number of Btrieve NLM processes (threads) were submitting these requests to TTS. This was especially true at a site with 16K disk block sizes. Since TTS tracks on a block by block basis, and their records were only 20 to 120 bytes, they were using multiple cache blocks for each Btrieve request.
SOLUTION
The possible work arounds for this problem are to reduce the number of Btrieve threads running on the server, lower the disk block size, or to use Btrieve's preimaging instead of TTS.
TTS was being disabled due to the TTS backout file growing to a point where it fills up the SYS volume. At this point TTS is disabled. This occurs because the server is so busy keeping up with TTS requests that it does not truncate its TTS backout file. The default for maximum truncation wait time is 59 minutes and 19.2 seconds. This can be too long in some environments. The fact that the disk block size was set to 16K contributed to the size of the TTS backout file as well, since TTS tracks on a block by block basis. The server will wait the full period of time before truncating the file if it is busy. If there are a lot of transactions from multiple stations taking place and the SYS volume is small, the backout file will grow until it uses up all of the space on the volume. At this point TTS will be disabled. There are three possible solutions in this scenario. One, use the console "set TTS Backout File Truncation Time" command to lower the maximum truncation wait time. Two, use a smaller disk block size. Three, use Btrieve's preimaging to insure the files integrity.
Btrieve, however, has no idea that TTS has been disabled due to a TTS bug which does not report that TTS is Disabled when a Begin/End/Abort Transaction is issued. Therefore, Btrieve cannot return an error status when the Begin/End/Abort Transaction is issued. This has been reported as a 3.11 OS bug.
FYI: LCXBTRV2.C Problems with Lattice C 2.0 & Large Model
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LCXBTRV2.C Problems with Lattice C 2.0 & Large Model
DOCUMENT ID: FYI.A.2018
DATE: 20NOV91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Undefined externals
ISSUE/PROBLEM
If a program using the LCXBTRV2.C Btrieve interface (for version 2.0 of Lattice C) is compiled with the Lattice C 2.0 compiler using a large memory model, an 'Undefined external' message will result. When compiling using the large model, the interface is calling a function FP_OFF which does not exist with Lattice C v2.0. This call was not introduced until Lattice C v3.0.
SOLUTION
Since the purpose of the FP_OFF function (in version 3.0) is only to return the offset of a far pointer, the function can be duplicated with 2.0 by type casting the far pointer to an unsigned. This will return the first two bytes of the address, which is the offset.
The changes that need to be made to the LCXBTRV2.C interface are as follows:
line 125: REGS.DX = (int) FP_OFF(&XDATA);
change to: REGS.DX = ((unsigned) (&XDATA));
line 142: REGS.DX = (int) FP_OFF(&XDATA);
change to: RECS.DX = ((unsigned) (&XDATA));
FYI: Forward Slashes in Btrieve Path names
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Forward Slashes in Btrieve Path names
DOCUMENT ID: FYI.A.1849
DATE: 19NOV91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Status 12
ISSUE/PROBLEM
A status 12 can occur if a path name is defined using forward slashes under Btrieve for DOS. A path name such as:
F:/DIR1/DIR2/DATAFILE.BTR
will return a status of 12 - File Not Found. The forward slash is not a legal character for a path name in DOS and therefore Btrieve for DOS is passing it onto the DOS operating system and receiving an error. A status 11 - Invalid File Name, seems more appropriate, but the 12 is returned. On a NetWare network, accessing NetWare files, the problem does not occur because NetWare uses both the '/' and the '\' as legal characters in a path name. C programmers may find this problem more often because they are using the forward slash as an alternative to the back slash, because the back slash is a control character for strings. To get around this in a C program, place two back slashes in the string being passed to Btrieve wherever a single back slash needs to be specified.
SOLUTION
NA
FYI: Transactions and Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
This behavior was surprising. It seemed that the Update operation in step8 should have returned a status of 85 - File In Use. However, it was confirmed through development that this is proper behavior. So an UPDATE will wait for a file to be released from a transaction and an 85 will not be returned.
SOLUTION
NA
FYI: Using NetWare Utilities Under Windows 3.0a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using NetWare Utilities Under Windows 3.0a
DOCUMENT ID: FYI.A.2915
DATE: 15NOV91
PRODUCT: Network C for Windows
PRODUCT VERSION: v1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The following is taken from the DOS/Windows update manual, page 12-13.
NetWare Utilities Support:
Windows support provided by Novell is intended to support the use of the Windows environment and Windows-based applications on a NetWare network. Because Windows takes control of the system, any utilities not specifically written for the Windows environment may not function correctly. Therefore, when using the NetWare utilities provided with the operating system, be aware that they may not function properly under Windows. For best results, create a PIF file for the utility that you would like to use and run the utility as a PIF.
SOLUTION
NA
FYI: Disabling the Swap file While in 386 Enhanced Mode
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Disabling the Swap file While in 386 Enhanced Mode
DOCUMENT ID: FYI.A.2914
DATE: 15NOV91
PRODUCT: Network C for Windows
PRODUCT VERSION: v1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
You can disable swapping, virtual memory, while in enhanced mode by putting "paging=no" into your [386Enh] section of SYSTEM.INI. This may be helpful if you are running Windows from a network volume, and paging really slows down performance for you.
SOLUTION
NA
FYI: Windows 3.0a Hangs for No Reason in Enhanced Mode
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows 3.0a Hangs for No Reason in Enhanced Mode
DOCUMENT ID: FYI.A.2913
DATE: 15NOV91
PRODUCT: Network C for Windows
PRODUCT VERSION: v1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you experience Windows hang ups for no reason in the Enhanced mode, try adding the line: emmexclude=A000-C7FF to the [386ENH] section of the SYSTEM.INI file. Start Windows from a DOS prompt and see if that makes a difference. This is an attempt to exclude the video range from use by Windows. You might try excluding the entire address space (EMMExclude=A000-EFFF) for a test to see if Windows is trying to use some of the address space memory and running into a conflict.
SOLUTION
NA
FYI: Problems Running Windows 3.0a from Workstation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problems Running Windows 3.0a from Workstation
DOCUMENT ID: FYI.A.2912
DATE: 15NOV91
PRODUCT: Network C for Windows
PRODUCT VERSION: v1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
1. When running Windows DO NOT use IRQ 2 if you can help it. (Especially with Arcnet).
2. If you have an Arcnet board, DO NO USE I/O addresses 2E0 AND 2F0. Try 300 and 350.
3. Also, using address D000 with IRQ 2 has been known to cause hang ups w/Arcnet under Windows.
4. The VPICD.386 driver had some bugs, you will need to replace it with the new driver VPICDA.386 in your SYSTEM.INI.
5. When running the Windows setup program, use the parameters /N /I. This causes the hardware inspection to be bypassed.
6. Make sure to check the client SYSTEM.INI file for any weird files, like LAN MANAGER, for example.
SOLUTION
NA
FYI: How the XTRPATH Environment Variable is Used
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How the XTRPATH Environment Variable is Used
DOCUMENT ID: FYI.A.1843
DATE: 15NOV91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The XTRPATH environment variable is used by appending the LOCATION (path & file name of the data file) that is specified in the dictionary. Therefore, if a full path name is given in the LOCATION name the XTRPATH variable is not used to find a file. For example:
LOCATION is defined as: F:\DIR1\DIR2\DATAFILE.BTR
and XTRPATH is set to: F:\LEVEL1\LEVEL2\DATA
and the datafile resides in F:\LEVEL1\LEVEL2\DATA. Xtrieve will return a status 12 when that file is accessed because it is only looking at the path specified by the LOCATION.
If only the filename is given in the LOCATION, then the filename is appended the directory(s) specified with XTRPATH when Xtrieve attempts to find the file. For example:
LOCATION is defined as: BTRFILE.BTR
and XTRPATH is set to: F:\LEVEL1\LEVEL2\DATA
would result in Xtrieve using F:\LEVEL1\LEVEL2\DATA\BTRFILE.BTR as the location of the data file.
If a directory is specified in the LOCATION that does not start with a drive letter or a back slash, such as DIR1\DIR2\DATAFILE.BTR, then that path is appended to the directory(s) specified with XTRPATH to find the file. So from our above example, if:
LOCATION is defined as: DIR1\DIR2\DATAFILE.BTR
and XTRPATH is set to: F:LEVEL1\LEVEL2\DATA
the result would be:
F:\LEVEL1\LEVEL2\DATA\DIR1\DIR2\DATAFILE.BTR.Remember, the server name, volume, directory path plus filename is bound by the 64 byte limitation.
In summary:
If the location name starts with a \ then XTRPATH is not used. If the location name starts with a drive letter such as 'F:' then XTRPATH is not used. So, if the location is a relative path...(doesn't start with \ or drive mapping) then the location is appended to XTRPATH.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
The NetBios section in the OS/2 API/SDK version 1.3a did not document the return error code 5, which means (ACCESS-DENIED). When you call the function NetBios OPEN(), you must set the access-mode to EXCLUSIVE MODE and NOT REGULAR MODE, in order to perform a Receive-Any NCB command.
SOLUTION
NA
FYI: How to Get the Latest OS/2 2.0 Requester for NetWare
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How to Get the Latest OS/2 2.0 Requester for NetWare
DOCUMENT ID: FYI.A.2910
DATE: 14NOV91
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Any client who needs to get a copy of the latest OS/2 2.0 Requester needs to contact IBM and NOT Novell to get a copy of the Requester. IBM has agreed to support the OS/2 2.0 Requester and they will be responsible for the BETA distribution. Clients need to call their IBM contact and inquire about their "EARLY EXPERIENCE PROGRAM". IBM has set up this program specially for any BETA customers.
SOLUTION
NA
FYI: Field Names with %
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Field Names with %
DOCUMENT ID: FYI.A.1842
DATE: 14NOV91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Xtrieve allows percent signs as valid characters in field names. An example would be field%name. However, this may cause problems when using these fields in command files, which reference fields by placing a % at the beginning and end of the field name.
SOLUTION
To get around the problem of XCFP truncating the field name, place a \ before the % in the field reference in the ASCII file that is to be converted to a command file. For example:
%field\%name%
XCFP will recognize that you are trying to use the % as part of the fieldname in this case.
FYI: Queue Names & NetWare 286 & NetWare 386
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Queue Names & NetWare 286 & NetWare 386
DOCUMENT ID: FYI.A.2641
DATE: 13NOV91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Job Queue names are different from NW 286 & NW386: ----------------------------------------------------------------
For NetWare 386:
Queue directory is: queue_ID.QDR (as in bindery ID)
Each Job entry is : First 4 characters are 2 hex values for the Queue ID, but are swapped. The next 4 characters represent the job number (right justified) and with the extension '.Q'.
Example.
Queue id = 08010015
Directory is 08010015.QDR
Jobs are in this directory will be: 01080001.Q 01080002.Q .etc
Each Job entry is: Q$<last 2 hex values from the queue ID>.<job number>
Example:
Queue ID = 12345678
Directory is: 12345678
Job entries will be: Q$5678.001 Q$5678.002....etc
SOLUTION
NA
FYI: Btrieve Caching
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Caching
DOCUMENT ID: FYI.A.1847
DATE: 13NOV91
PRODUCT: Btrieve
PRODUCT VERSION: 5.x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Btrieve for DOS commits each write at the time of the write. The cache is then flushed. If the file is opened in accelerated mode the write is committed but the cache may not necessarily be flushed.
A NetWare server follows the same type of procedure but once the commitment of the write goes to NetWare, the OS may cache the write before it goes to disk. That, however, is determined by NetWare.
SOLUTION
NA
FYI: Kodiak Network Cards
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Kodiak Network Cards
DOCUMENT ID: FYI.A.1846
DATE: 13NOV91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Send Failure in Advertiser
ISSUE/PROBLEM
Customer was receiving SEND FAILURE IN ADVERTISER errors. When he switched his 16 bit Kodiak network card in his server to a Western Digital card the error went away. We were not able to confirm any information about the card or drivers. However, it is one more thing to check if this message appears.
SOLUTION
NA
FYI: How to Find Out if NetWare SQL is Loaded
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How to Find Out if NetWare SQL is Loaded
DOCUMENT ID: FYI.A.1841
DATE: 13NOV91
PRODUCT: NetWare SQL NLM
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How do you determine if NetWare SQL is loaded on a server without calling the xLogin or XQLLogin function?
SOLUTION
Using the Network C for DOS APIs, you can write an application that does the following. First, do a ReadPropertyValue to get the internet address for the server. Next, convert the address to ASCII. Call ScanBinderyObject using the Object_type = OT_FILE_SERVER, Object_ID = 4C, and the searchObjectType = *ASCIIADDRESS*. If a non-zero value is returned, NetWare SQL is not loaded. The *ASCIIADDRESS* must syntactically appear as shown here, in the searchObjecType variable. Prefix the address with a * and postfix the address with a *.
FYI: Problem with AIO COMX
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with AIO COMX
DOCUMENT ID: FYI.A.004
DATE: 13NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
AIOCOMX refuses to LOAD when given a valid PORT= address, displaying "*Error*: Hardware for I/O address 0x%x does not exist."
Due to problems where customers were not specifying correct I/O addresses for the COMx: ports they were trying to use, we put in code to check out the I/O address given for valid hardware. If there was no asynchronous serial I/O chip present at that I/O address, we display the above message.
We have received reports, however, that the method used to validate the I/O addresses is not working in every case. There is at least one PC (AST Premium/386C 20 Mhz) that is using some variant of the 16450-type chips that does not pass the validity checks.
SOLUTION
Currently, we are working up a patch for AIOCOMX.NLM. There will be no other work around until an updated NLM is available.
FYI: Loading Problems with AIO ARTIC Port or Board
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading Problems with AIO ARTIC Port or Board
DOCUMENT ID: FYI.A.003
DATE: 13NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
AIOARTIC cannot be reloaded after incorrect MEM= attempt.
It is possible for the customer to put an ARTIC board into a state where it cannot be reloaded until the PC is powered off and on, which resets the ARTIC board hardware.
The default MEM= value for the 8KB memory window to be used by the AIOARTIC driver to access the ARTIC board is C0000. This memory address is very good for PS/2's, but often very bad for any other kind of PC. The problem is that for many PC's this address is the location of the EGA or VGA BIOS ROM code. Reusing these addresses seems to discombobulate the hardware on the ARTIC board.
If the customer has LOAD'ed the AIOARTIC.NLM with no parameters, or used the MEM=C0000 parameter value, then this could lock up the ARTIC board. Even further LOAD attempts with correct parameters might not succeed.
SOLUTION
The customer *must* find out what memory address ranges in high memory are free for use by new hardware. We can suggest the use of utilities like QuarterDeck's Manifest to locate the 'holes' in high addresses. The customer must supply the correct addresses on the MEM= parameters.
FYI: Problem with AIO ARTIC Port or Board
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with AIO ARTIC Port or Board
DOCUMENT ID: FYI.A.002
DATE: 13NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: AIOARTIC port or board hangs or becomes unusable.
ISSUE/PROBLEM
It is possible for an ARTIC port or board to become unusable upon receiving an input character that is marked as 'in error'. Such a character is one which has a parity error or framing error. This can happen (and did) by simply changing data rates while input characters are being received.
At the very least that port becomes unusable, and about 50% of the time the whole board locks up. This situation persists, usually until the PC is powered off and then rebooted. This is needed to completely reset and reload the code which goes into the ARTIC board itself.
SOLUTION
A temporary patch is available which may be applied using DEBUG as follows:
DEBUG AIOARTIC.NLM -- must be the 9/18/91 NLM
-eA845 <CR> -- should display the byte value EE
-EA <CR> -- type in EA, then hit enter
-w <CR> -- write the modified file
-q <CR> -- DEBUG
This applies only to the 9/18/91 version 1.01 of AIOARTIC.NLM. Of course the customer should save a copy of the NLM first. And of course they can use any other means of changing the A745th byte of the file from EE to EA (DEBUG offsets have 100 hex added to them).
An updated AIOARTIC.NLM will be released at an unknown later date.
FYI: Windows SDK 1.22 & Debugging ESR's
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK 1.22 & Debugging ESR's
DOCUMENT ID: FYI.A.2640
DATE: 12NOV91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When trying to debug ESR's under Windows, you must use the MSC Windows Kernel Debugger. The symbol must be made public, and then linked with the MA and LI options. Then load the debugger and press Ctrl-Alt-SysRq to enter the debugger. Set the breakpoint, and go.
You must have a MSC DDK for this effort.
SOLUTION
NA
FYI: QEMM & 386MAX with Windows 3.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: QEMM & 386MAX with Windows 3.0
DOCUMENT ID: FYI.A.2639
DATE: 12NOV91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Unconfirmed FYI: You can use memory drivers other than HIMEM.SYS with Windows 3.0.
QEMM : must use version 6.01 or later, in STEALTH mode for it to work.
386MAX : must use version 6.0 or later.
If earlier versions are used, they will cause problems (hangs).
SOLUTION
NA
FYI: Where is xGetSessionID?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Where is xGetSessionID?
DOCUMENT ID: FYI.A.1840
DATE: 12NOV91
PRODUCT: XQL for DOS
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: The prototype file for Windows is missing functions.
ISSUE/PROBLEM
Why are xGetSessionID and xPutSessionID missing from the WXQLCALL.H file?
SOLUTION
This was an oversight and will be corrected in the next release.
FYI: Windows and XQL/NetWare SQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows and XQL/NetWare SQL
DOCUMENT ID: FYI.A.1839
DATE: 12NOV91
PRODUCT: XQL for DOS, NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How many tasks can you run in Windows with XQL and NetWare SQL? With the client version of XQL version 2.11 you can run only ONE task. With NetWare SQL version 2.11 you can run up to 10 tasks. The keyword tasks=10 must appear under the [nsreqDPMI] heading in WIN.INI in order to use 10 tasks.
SOLUTION
NA
FYI: Watcom Compiler and Different Debugger
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Watcom Compiler and Different Debugger
DOCUMENT ID: FYI.A.3819
DATE: 11NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How can you use Microsoft's codeview debugger with a file compiled with the Watcom compiler?
SOLUTION
A utility program is provided with WATCOM's C/386 that may be used to convert the debugging information present in object files created by WATCOM C/386 to various formats acceptable by other linkers and debuggers. This utility is called WOMP (WATCOM Object Module Processor). It comes with the 8.5 version of the compiler.
FYI: BSERVER.VAP and NetWare's Watchdog Timeout
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BSERVER.VAP and NetWare's Watchdog Timeout
DOCUMENT ID: FYI.A.3014
DATE: 08NOV91
PRODUCT: Btrieve VAP
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: Status 3; files are closed by the watchdog for the active session when files are re-opened immediately after reboot.
ISSUE/PROBLEM
Suppose a workstation is rebooted while it still has Btrieve files open, and then the same files are re-opened at that workstation. If the watchdog had not yet cleared the files for the original session before they were re-opened, the files will be closed for both connections after a few minutes when the watchdog takes effect. This usually results in Btrieve status 3 (File Not Open) being returned to the application.
SOLUTION
This is a known problem in the VAP, and cannot be patched. The work around is to wait until the watchdog closes the first session before restarting the application.
Another possible work around is that the developer can add some logic to the application so that it opens the first file, and then tries to do a get first. If the get first returns a status 3, then re-open all files and continue on. If the get first returns a status 0, then all is well and the application can continue.
This problem does not exist in the BTRIEVE NLM.
FYI: Network C for NLM's and TLI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLM's and TLI
DOCUMENT ID: FYI.A.2638
DATE: 07NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here is a quick reminder for using TLI API's. When attempting to unbind a connection, make certain that the STATE of TLI for that handle is T_IDLE. If not, 't_unbind' is called in the incorrect state and the API seems not to return. (It is waiting on conditions that will never occur).
This problem occurs in BLOCKING calls. In this case the STATE is not T_IDLE.
SOLUTION
Either use NON-blocking calls, or use t_nonblocking on a connection that BLOCKING was being used on.
FYI: Network C for NLM's SDKa/b, Taskid & Semaphores
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLM's SDKa/b, Taskid & Semaphores
DOCUMENT ID: FYI.A.2637
DATE: 07NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This is a reminder about network semaphores and how they are affected by task ID's.
Network semaphores and task IDs must be controlled correctly to allow a semaphore to behave in the manner that a developer expects. If the same semaphore is opened in several threads without obtaining a unique task ID, the semaphore will only be opened 1 time. This poses some problems in that, closing the semaphores in these threads will undoubtedly result in 'unreleased resources' during unloading. The first call to CloseSemaphore works, but the rest do not free their resources, since to them it is already taken care of.
This is essentially a conceptual issue, not a bug.
SOLUTION
Use 'SetCurrentTask(-1)' for each thread that will be opening the same semaphore. This call will return a unique task ID that will then permit the semaphore to be opened in each thread, bumping up the open count, and allowing the CloseSemaphore to free up the semaphore resources.
NOTE: Make certain the task ID resources are also released using theReturnBlockOfTasks(..) API, for each task ID allocated.
FYI: Hanging Problems with Brequest 5.16 and DataLens Driver
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Hanging Problems with Brequest 5.16 and DataLens Driver
DOCUMENT ID: FYI.A.1838
DATE: 06NOV91
PRODUCT: NetWare SQL NLM
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NetWare SQL DataLens Driver hangs when user chooses a path for the dictionaries with LOTUS 3.1.
ISSUE/PROBLEM
Trying to access data in Lotus through the NetWare SQL DataLens Driver, with BREQUEST.EXE v5.16 (UNPATCHED), and NSREQ.EXE v2.11 loaded was causing Lotus to hang at the point where the user chooses the path for the dictionaries. When he unloaded BREQUEST and ran Lotus again, everything worked. It definitely did not work with the unpatched BREQUEST.
SOLUTION
NA
FYI: OS/2 Documentation Correction
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2 Documentation Correction
DOCUMENT ID: FYI.A.3216
DATE: 05NOV91
PRODUCT: NetWare OS/2 SDK
PRODUCT VERSION: 1.21
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The OS/2 documentation has quite a few calls that pass a pointer to a buffer and then as the next parameter pass the length of the buffer. The documentation for these length parameters say the size of the buffer is returned. So people are passing pointers to WORD instead of WORDSs. This will cause a GPI. For example:
NWGetConnectionStatus(WORD connectionID,
CONNECT_INFO far *connectionInfo,
WORD connectionInfoBufferSize);
The documentation says ConnectionInfoBufferSize returns a pointer to the size of the CONNECT_INFO data structure. People read this and change the last parameter to be WORD *connectionInfoBufferSize, which causes a GPI.
SOLUTION
The solution is quite simple. In these cases, believe the prototype in the header file. If it is declared a WORD pass it the size of the structure. In the above example it would be size of(CONNECT_INFO).
FYI: Status Field in NLM ECB is Unsigned
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status Field in NLM ECB is Unsigned
DOCUMENT ID: FYI.A.3215
DATE: 05NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 3.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The ECB in the NLM environment defines the Status flag as unsigned. The documentation says that this field will be positive when the ECB is in use. It will be zero when not in use and no error has occurred. When negative, it is no longer in use but an error has occurred. So, people write code that says if ECB.status < 0 an error occurred. This will never be true since the field is defined as unsigned so it can never be negative.
SOLUTION
All of the Error codes that can be passed back in the status field are above 0xFE00 in value. If you compare ECB.status > 0xFE00, an error occurred.
FYI: Using Your Mouse on a Non-Dedicated Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using Your Mouse on a Non-Dedicated Server
DOCUMENT ID: FYI.A.2908
DATE: 05NOV91
PRODUCT: NetWare Operating System
PRODUCT VERSION: 2.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When you are running on a Non-dedicated file server or on a PS/2 model 50, 60 or 80 workstation, you will not be able to use your mouse port, regardless if you have a UPS unit or not. You will need to download the file MOUSE.ZIP from NetWire in NOVA library 8. This file fixes the mouse problems on PS/2 model 50/60/80. Load this patch after loading the workstation shell, then run the mouse driver file and the default file. When running on a non-dedicated file server, load this patch after running the operating system and loading the shell. This patch was tested with the IBM Personal System/2 mouse driver and the Microsoft mouse driver v6.11. The Microsoft mouse driver will put a non-dedicated file server into console mode; just type "DOS" and the driver will finish loading and will be available for use.
SOLUTION
NA
FYI: WVIDEO Cannot Find Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WVIDEO Cannot Find Server
DOCUMENT ID: FYI.A.3125
DATE: 04NOV91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using WVIDEO, it prints the message "no such server" when trying to connect to the NOVSERV NLM.
SOLUTION
Download an updated version of NOVSERV, from NOVDEV library 7. It is called NOVSRV.ZIP.
FYI: ScanTrustees() Documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanTrustees() Documentation
DOCUMENT ID: FYI.A.3818
DATE: 31OCT91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKb
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Parameters of the ScanTrustees API in the Network C for NLMs SDK is not clearly documented. What are the startingOffset, vectorSize, trusteeVector, and maskVector parameters?
SOLUTION
1. The startingOffset is the number of trustees that will be skipped. So, if you need information starting from the first trustee, starting Offset should be 0.
2. VectorSize is the length of the array trusteeVector.
3. TrusteeVector is an array of LONG. ScanTrustees() returns the Trustee IDs in this array.
4. MaskVector is an array of WORDS. ScanTrustees returns the Trustee Rights of the corresponding Trustees from the trustee Vector.
FYI: Multiple IPX/SPX Sessions under Desqview
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Multiple IPX/SPX Sessions under Desqview
DOCUMENT ID: FYI.A.3342
DATE: 29OCT91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What does a developer do to run multiple IPX/SPX sessions under Desqview? This applies to Btrieve, NLM or VAP, or any other IPX/SPX application.
SOLUTION
The developer needs to obtain the EMMNET3.DRV file from the Desqview bulletin board. TBMI/TASKID can NOT be used in the Desqview environment: it is Windows specific.
FYI: Btrieve for DOS and AT&T Star group
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve for DOS and AT&T Star group
DOCUMENT ID: FYI.A.3013
DATE: 29OCT91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Update and insert return status 2 on an AT&T Star group network.
ISSUE/PROBLEM
There is a problem running Btrieve for DOS version 5.10a on an AT&T Star group network. Reading records works without any problem. However, any writes to a Btrieve file cause the file to get corrupted.
The customer copied a local Btrieve file to the file server and used BSIM.EXE to test this. During the test, he was the only person accessing the file.
He was able to retrieve the records, but, update and insert operations returns status 2. After the update/insert operation, the file was not accessible:Butil -Recover and Butil -Save returned status 2.
SOLUTION
NA
FYI: XQLPO and Sharing Violation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQLPO and Sharing Violation
DOCUMENT ID: FYI.A.3011
DATE: 29OCT91
PRODUCT: XQL
PRODUCT VERSION: 2.01
SUPERSEDES: NA
SYMPTOM: "Sharing Violation" error when loading XQLPO v2.01.
ISSUE/PROBLEM
On some networks, loading XQLPO version 2.01 from two workstations will return a Sharing Violation error on the second workstation. The work around is to change the attribute of XQLPO.EXE to READ ONLY. This problem does not exist in XQLPO version 2.11. This is because XQLPO 2.11 uses Sharable, Read Only for the open mode.
SOLUTION
Either use version 2.11 or flag XQLPO.EXE as a READ ONLY file.
FYI: Retrieving Heading Information for Fields through XQLM Calls
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Retrieving Heading Information for Fields through XQLM Calls
DOCUMENT ID: FYI.A.1117
DATE: 29OCT91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you define a heading for a field through Xtrieve PLUS, you cannot recall any of that information from the manager level of XQL. Specifically, a developer wanted to know if he could retrieve such information with an SQL statement (XQLI), and we found that this is not possible.
SOLUTION
The only way to retrieve field heading information at the XQL API level is through the primitive xDDAttr.
FYI: Optionally Loading Btrieve with Xtrieve PLUS 4.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Optionally Loading Btrieve with Xtrieve PLUS 4.10
DOCUMENT ID: FYI.A.1116
DATE: 29OCT91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: 8/16/91
SYMPTOM: NA
ISSUE/PROBLEM
The following warnings may occur under Xtrieve PLUS v4.10 if Btrieve is not loaded at the workstation prior to starting Xtrieve.
Since Xtrieve makes Btrieve calls to access the XTRIEVE.HLP file, you must have Btrieve loaded before getting into Xtrieve. If Btrieve is not loaded, you will get the message: 'Help file is not online.'
If you try to recall a report layout, run a command file, or translate to DIF, SDF, or UNF, you will get a message stating
'Unable to open XXX.MEN, status = nn. Using system file names'
if Btrieve was not loaded prior to loading Xtrieve. The .MEN files are Btrieve files, and contain the DOS location name of the files within the menu, as well as the descriptive file name provided by the user who created the file. Since Xtrieve is using Btrieve calls to access these files, Btrieve must be loaded. If Btrieve is NOT loaded, you will be able to recall the command file, report layout, or translated file, but instead of choosing the descriptive file name, you will have to choose from a list of system file names (the DOS location name specified for the file).
SOLUTION
NA
FYI: Xtrieve Load Problem
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve Load Problem
DOCUMENT ID: FYI.A.1115
DATE: 29OCT91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Problem is: after loading Xtrieve, the sign-on screen appears, followed by text printing on the screen and the machine beeps.
SOLUTION
The problem may be that the environment variable XTRTMP is set to a directory where you do not have create and write file access. You must set XTRTMP= to a directory where you definitely have these rights.
FYI: ScanDirectoryForTrustees
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanDirectoryForTrustees
DOCUMENT ID: FYI.A.3346
DATE: 28OCT91
PRODUCT: NetWare System Calls
PRODUCT VERSION: 1.00
SUPERSEDES: NA
SYMPTOM: No trustee information returned.
ISSUE/PROBLEM
The NetWare System Calls - DOS, version 1.00, states that a sequence number of zero needs to be specified the first time this API is called.
SOLUTION
Pass a one as the initial sequence number.
FYI: Logical Fields in NetWare SQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Logical Fields in NetWare SQL
DOCUMENT ID: FYI.A.1837
DATE: 25OCT91
PRODUCT: NetWare SQL VAP
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: Logical fields not returning correct data values.
ISSUE/PROBLEM
The definition of a logical field is to have any value other that 0 represent TRUE. Only 0 is false. It appears that the current implementation of the logical field is opposite of that. If any value other than one is given for TRUE it is reported back as FALSE.
SOLUTION
NA
FYI: Bit Data Type in Xtrieve 4.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Bit Data Type in Xtrieve 4.10
DOCUMENT ID: FYI.A.1836
DATE: 25OCT91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Printing dictionary definition of bit data type field increments the position of each field as if it were a BYTE.
ISSUE/PROBLEM
If you print the dictionary definition of a Bit field in Xtrieve it will increment the position of each field as if it were a BYTE. For example the definition of a file is as follows:
Name String 20
Address String 20
flag1 BIT
flag2 BIT
flag3 BIT
If you print this out with the Dictionary/Print option, Xtrieve will reportflag1 as starting in location 41, flag2 in position 42, and flag3 in position 43. They should all be specified in location 41.
SOLUTION
NA
FYI: Documentation Error Regarding Block Sizes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Documentation Error Regarding Block Sizes
DOCUMENT ID: FYI.A.2636
DATE: 23OCT91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.2x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
All the C interfaces contain documentation errors with regard to block sizes and NetWare 386(3.X). For 3.X, the block size is configurable, so assuming a 4K block size is inaccurate. 4K blocks are being referenced in our documentation in such calls as Set/GetDirRestrictions.
This is a minor detail but worth noting. This assumption will force incorrect calculations for disk usage (restriction).
SOLUTION
NA
FYI: Problem with SAP API - QueryService
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with SAP API - QueryService
DOCUMENT ID: FYI.A.2635
DATE: 22OCT91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The QueryService API has a minor problem in that it returns the NetWork and Node Address of the SAP server in swapped format when compared to that same code in the DOS environment. This is an inconsistency and a minor inconvenience.
SOLUTION
At this point you must swap the entire address.
FYI: Windows and IPX/SPX Initialize Standard/Real MODE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows and IPX/SPX Initialize Standard/Real MODE
DOCUMENT ID: FYI.A.2634
DATE: 22OCT91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you are using communications in Standard and Real mode in Windows and using IPXInitialize/SPXInitialize, you may end up with error 240. This means that you did not load TBMI prior to loading Windows.
SOLUTION
Load TBMI...
FYI: Lan Driver Statistics for NetWare 386
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lan Driver Statistics for NetWare 386
DOCUMENT ID: FYI.A.2633
DATE: 22OCT91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.2x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This actually pertains to all C-interfaces dealing with LAN driver statistics. As the C interfaces currently stand, most LAN oriented calls allow only 4 LANs to be targeted (0,1,2,3). This is OK for NetWare 286 but NetWare 386 allows up to 16 LAN's (including the Internal LAN (router) - Virtual IPX LAN Driver). Making such calls as GetBridgeDriverConfiguration poses problems for NetWare 386. Since LAN 0 is the virtual LAN, only 3 additional LAN boards may be targeted; the remaining ones cannot.
For the most part, most NetWare 386 LAN's do not make use of large numbers of LAN cards in one server, but if they do and Diagnostics are important... we have a limitation.
SOLUTION
NA
FYI: Network C for NLM's SDKa/b & __8087 symbol
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLM's SDKa/b & __8087 symbol
DOCUMENT ID: FYI.A.2632
DATE: 21OCT91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using Floating point arithmetic (double variables), during the linking stage an error is reported stating that '__8087' is unresolved. Watcom apparently included this symbol in their compilation stages to force the inclusion of the module that determines if an 8087 chip is available. Technical Support for Watcom says this is the same module that defines '_8087'. The symbol was stated not to have any other function but the inclusion of the module.
SOLUTION
As a temporary solution, the variable '__8087' can be declared in your module. For example, declare: 'int __8087'.
FYI: Windows SDK & AFPOpenFileFork API
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK & AFPOpenFileFork API
DOCUMENT ID: FYI.A.2631
DATE: 17OCT91
PRODUCT: Network C for Windows
PRODUCT VERSION: 1.22
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation for the API AFPOpenFileFork is missing information regarding the NetWare Handle parameter (second to last parameter). It NEEDS to be 6 bytes in length if one is to be returned, which is optional. NULL is used when a value is not to be returned. It is not immediately evident as to what a NetWare Handle should be declared as. Looking into the C Interface-DOS, the example for this API shows it as a 6 byte value. Examples at this point are not provided for the Windows SDK, except for the communication APIs.
SOLUTION
NA
FYI: Handling Multiple Datagrams under NetBIOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Handling Multiple Datagrams under NetBIOS
DOCUMENT ID: FYI.A.1315
DATE: 17OCT91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Lost datagrams at a workstation.
ISSUE/PROBLEM
Considerations must be taken into account when receiving multiple datagrams at a workstation. If a Send Datagram is issued and there are no workstations which have issued a Receive Datagram and submitted a NetBIOS Control Block (NCB) prior to this, the datagram will be "lost" since there is no guaranteed delivery mechanism with datagrams.
If only one NCB has been submitted by a call to Receive Datagram and a datagram is received, subsequent datagrams will be lost until another Receive Datagram is issued. In this case, multiple NCBs must be submitted via several calls to Receive Datagram. Unlike Novell's receive ECBs, NetBIOS' NCBs are used in the order they are submitted. Therefore, if multiple messages are received, they will be placed in consecutive NCBs.
SOLUTION
NA
FYI: Brequest /D Parameter Documentation Errors
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest /D Parameter Documentation Errors
DOCUMENT ID: FYI.A.2341
DATE: 16OCT91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.11, 5.15, and 5.16
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation about the /D parameter is not accurate in any of the NetWare Btrieve Installation and Operation Manuals for the relevant versions of Brequest.
The default value for the /D parameter is 4096 (not 2048!).
The manuals also state that "The /D option increases the memory resident size of the requester by twice the number of bytes you specify plus 538 bytes." In actuality, raising the /D parameter only changes (increases OR decreases) the size of the requester by:
(the number of bytes you specify - 4096).
The overhead (of approximately 538 bytes) is a "given" no matter what /Dis specified, and therefore, does not need to participate in the equation.
SOLUTION
NA
FYI: Problem with API - AIOGetNextPortInfo
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with API - AIOGetNextPortInfo
DOCUMENT ID: FYI.A.001
DATE: 16OCT91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 1.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
For multiple COM ports, AIOGetNextPortInfo does not work if you have made a prior call to AIOGetFirstPortInfo with wildcards passed in for both board Number and port Number. With repeated calls to AIOGetNextPortInfo, AIO should look for every port across every board for that particular hardware Type. However with the AIOGetNextPortInfo call, it returns the same information that you get with AIOGetFirstPortInfo. Apparently AIO seems to be scanning the same board twice.
SOLUTION
There is no permanent work around for this problem. You could, however,hard code the values for the board Number.
FYI: Checking Btrieve VAP Parameters
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Checking Btrieve VAP Parameters
DOCUMENT ID: FYI.A.2340
DATE: 15OCT91
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.10 and 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
To check what load parameters have been set for the BSERVER.VAP, use DOS's DEBUG.COM:
1. At the command line, type 'DEBUG BSERVER.VAP'
2. At the '-' prompt, get the contents of the DS register by typing 'r ds <return>'
3. Something like this will be returned:
DS 3310
:
The number will vary. At the ':' prompt (shown above), type the result of adding 100 (hex) to the number returned from the DS register. In the above example, you would type '3410 <return>'. Once you type in the number, you will be returned to the '-' prompt.
4. Dump the contents of the addresses starting at F100. At the '-' prompt, type 'd F100 <return>'
5. You will get a list of byte contents in hex and ASCII. On the right side of your screen, you will see the ASCII, and it will start with 'EIM PARMS'. Look for the parameters following that.
SOLUTION
NA
FYI: Multitasking with PC-MOS & Btrieve for DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Multitasking with PC-MOS & Btrieve for DOS
DOCUMENT ID: FYI.A.1026
DATE: 11OCT91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: Trying to use Btrieve for DOS in multiple partitions/tasks under PC-MOS may hang the workstation.
ISSUE/PROBLEM
Trying to load Btrieve for DOS in multiple partitions/tasks under PC-MOS will hang the workstation unless you make the changes described below to the CONFIG.SYS file. In addition, attempting to load Btrieve more than once in the same partition/task will hang the workstation, instead of returning a "Btrieve already loaded" message.
SOLUTION
Place the following statements in the CONFIG.SYS file:
"driver=$netbios.sys:" this tells PC-MOS to emulate a network
For each partition/task put: "netname PutTaskName"
the PutTaskName must be a unique name for each partition/task.
"mos tsr on" this turns PC-MOS tsr support on
Also, if you are running compilers within these different partitions/tasks,you must change the Btrieve interface file name to some unique name for each partition/task to use it properly.
FYI: Old Btrieve Status 33
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Old Btrieve Status 33
DOCUMENT ID: FYI.A.1025
DATE: 11OCT91
PRODUCT: Btrieve NLM
PRODUCT VERSION: 5.1x
SUPERSEDES: NA
SYMPTOM: Status 33
ISSUE/PROBLEM
A customer's application was receiving a status 33: "Same Drive Error - The file's extended partition cannot reside on the same logical drive as its primary partition." It turned out to be an application error related to how pointers were being passed, and not a valid status 33. The status 33 error is no longer possible in the Btrieve NLM or VAP code so it is no longer included in the documentation.
SOLUTION
NA
FYI: Exporting from dBase to Xtrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Exporting from dBase to Xtrieve
DOCUMENT ID: FYI.A.1024
DATE: 11OCT91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
For those making the move to Xtrieve from dBase there is a simple way to convert dBase data files to Xtrieve data files. When exporting out of dBase, use the comma delimited format, which will translate into an Xtrieve view with the "from SDF" translate option.
SOLUTION
NA
FYI: DIRLPFX1 And TTSFIX Patches Won't Work Together
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DIRLPFX1 And TTSFIX Patches Won't Work Together
DOCUMENT ID#: FYI.P.4306
DATE: 09OCT91
PRODUCT: NetWare
PRODUCT VERSION: 3.11
SUPERSEDES: NA
SYMPTOM: Unable to load both TTSFIX and DIRLPFX1 at the same time
ISSUE/PROBLEM
The versions of Patchman that are zipped with the above patches are not compatible, ie. you can't load DIRLPFX1 with the patchman that is zipped with TTSFIX and vice versa.
SOLUTION
Get the latest versions of these patches in 311PTx.ZIP and replace PATCHMAN.NLM from the same file. All pre serialization v3.11 patches will have to be replaced with those in 311PTx.ZIP.
FYI: ScanUserSpaceRestrictions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanUserSpaceRestrictions
DOCUMENT ID: FYI.A.3345
DATE: 09OCT91
PRODUCT: Network C for NLMs
PRODUCT VERSION: 2.0a
SUPERSEDES: NA
SYMPTOM: Server Reboot
ISSUE/PROBLEM
The ScanUserSpaceRestrictions function can cause a server to reboot if it is called with a numberOfTrusteesToReturn less than twelve on a remote server. The reboot will occur if there are more trustees with restrictions on the volume being scanned than the number you pass in OfTrusteesToReturn element. The function always returns the number of trustees it finds, not the maximum number that was specified when the function was called. The maximum number that can be returned is twelve.
SOLUTION
Always set aside enough room to receive twelve trustees back when calling this function.
FYI: Btrieve Status 29 & COBOL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status 29 & COBOL
DOCUMENT ID: FYI.A.2339
DATE: 09OCT91
PRODUCT: Btrieve
PRODUCT VERSION: All versions
SUPERSEDES: NA
SYMPTOM: Status 29 on a Btrieve Create, using Realia COBOL
ISSUE/PROBLEM
Using some versions of COBOL (for example, Realia version 3), an integer must be defined as COMP-5. The integer is allotted 2 bytes by the compiler, which is fine for most fields of the data buffer used for a Btrieve Create. The problem arises in the Key Specifications structure, where the extended key types and null values are declared. They each must be 1 byte long, so an easy way out is to declare the two fields as one 2-byte integer, and then set them to null. But what if you also want to have a null value or an extended key type for your key(s)?
SOLUTION
The following example shows the process required to create a file with a Zstring key and a null value of 20hex (the other flags are not important because they are easy to control):
0. Remember to assign the appropriate value as a key flag (add decimal 256 to indicate an extended key type for that key).
1. View the extended key type (EKT) and null value (NV) bytes as they would appear in memory:
byte n: 0B hex (contains the EKT: when the value is converted to
decimal, it would be 11, to indicate Zstrings)
byte n+1: 20 hex (contains the NV: when the value is converted to
decimal, it equals 32)
2. Since you have declared the EKT and NV bytes as a single 2-byte integer with COMP-5, the compiler will switch the bytes. So you must switch the bytes manually to compensate:
byte n: 20 hex
byte n+1: 0B hex
3. Figure out what decimal number corresponds to 200Bhex (it is 8203), and assign that to the integer corresponding to the EKT and NV flags.
FYI: TURCBTRV.C works fine with C++
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: TURCBTRV.C works fine with C++
DOCUMENT ID: FYI.A.1629
DATE: 08OCT91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.10a
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Does the TURCBTRV.C interface that ships with Btrieve for DOS v5.10a work with Turbo C++ v1.0 and Borland C++ v2.0?
SOLUTION
Yes! It has NOT been "officially" tested, but it does work. However,when compiling under the C++ mode of these compilers, a warning will be produced stating that the function declaration is obsolete. This is because the parameters are declared after the function declaration (before the opening brace) instead of within the function declaration, and this is no longer ANSI standard. Borland's compilers still accept this declaration in the current versions, so this is not a problem. The TURCBTRV.C that ships with Btrieve for DOS v5.10a has 5115 bytes and is dated 2/10/90.
FYI: Another Cause of Status 30
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Another Cause of Status 30
DOCUMENT ID: FYI.A.2338
DATE: 04OCT91
PRODUCT: Btrieve
PRODUCT VERSION: All versions
SUPERSEDES: NA
SYMPTOM: Status 30
ISSUE/PROBLEM
A status 30 on an open call may not mean the Btrieve file is corrupt. It may indicate that the file was created with an earlier version of Btrieve than the version currently attempting to open the file. For instance, suppose you have a file created with version 5.10 of the Btrieve NLM, using compression and autoincrement keys (both introduced in version 5.00 of Btrieve). Attempting to open this file with Btrieve for DOS 3.1 Networks version 4.11b will result in a status 30.
SOLUTION
NA
FYI: DOS function 5FH, Subfunctions 03H and 04H
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DOS function 5FH, Subfunctions 03H and 04H
DOCUMENT ID: FYI.A.1523
DATE: 02OCT91
PRODUCT: NetWare Shell
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
DOS Function 5FH Subfunction 03H, Make Assign-List Entry, will map a drive to the specified path. The drive will be mapped as a fake root. You can map a drive to the default server or any other server you are logged into. If you try to map a drive to a server you are not attached to, a status 3, invalid path, will be returned. You can map a drive providing standard Novell syntax for the path, SERVER/VOL:DIR\DIR, VOL:DIR\DIR, or DIR\DIR.
DOS Function 5FH Subfunction 04H, Cancel Assign-List Entry, will delete the drive.
SOLUTION
NA
FYI: DIAGFIX.NLM and GetSpecificNetworkInfo
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DIAGFIX.NLM and GetSpecificNetworkInfo
DOCUMENT ID: FYI.A.1633
DATE: 01OCT91
PRODUCT: C Interface Diagnostics
PRODUCT VERSION: NetWare 3.10
SUPERSEDES: NA
SYMPTOM: Break at XXXXXXXX because of INT 3 breakpoint
ISSUE/PROBLEM
GetSpecificNetworkInfo causes the server to break because of INT 3 interrupt when the DIAGFIX.NLM is loaded on a NW 3.10 server.
SOLUTION
The current version of DIAGFIX.NLM, dated 10/1/91 (911001), fixes the problem.
FYI: New Accounting Types for NetWare 2.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: New Accounting Types for NetWare 2.2
DOCUMENT ID: FYI.A.1522
DATE: 01OCT91
PRODUCT: NetWare SI Tech Overview
PRODUCT VERSION: 2.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Three new types of accounting records are being written to the NET$ACCT.DAT file when using NetWare version 2.2. The following is a layout for each of the new record types.
;Begin change here 5-21-90, RCA
; Type 7 -- Rights change note
endt6 db 00H, endt7 - t7
t7 dw 0700H ;Record type (Hi-Lo)
db endn7 - n7 ;# of fields
n7 db T_TEXT ;Name of user changing rights
db T_TEXT ;Name of user who owns object changed
db T_RIGHTS ;Current rights
db T_TEXT ;Path of object changed endn7
db endt7 - s7 ;length of string
s7 db "%s changed rights on object owned by %s to %s."
db " Object changed was %s."
; Type 8 -- Server up note
endt7 db 00H, endt8 - t8
t8 dw 0800H ;Record type (Hi-Lo)
db 0 ;# of fields
db endt8 - s8 ;length of string
s8 db "Server booted."
; Type 9 -- Server down note
endt8 db 00H, endt9 - t9
t9 dw 0900H ;Record type (Hi-Lo)
db 0 ;# of fields
db endt9 - s9 ;length of string
s9 db "Server downed."
;End change here 5-21-90, RCA
SOLUTION
NA
FYI: XQL and Turbo Pascal For Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL and Turbo Pascal For Windows
DOCUMENT ID#: FYI.A.1234
DATE: 01OCT91
PRODUCT: XQL 2.x & Windows 3.x
PRODUCT VERSION:
SUPERSEDES: N/A
SYMPTOM:
ISSUE/PROBLEM
Below are example definitions of Windows XQL calls using Turbo Pascal for Windows. Included with the XQL for Windows Requestor DLL package is a file, XQLCALLS.H, which contains all the C function prototypes for all XQL calls. Calling these functions from Turbo Pascal, as you can see below, is a matter of converting the function prototypes from C format to Pascal format.
A simple rule to follow is if the C data type begins with LP (LongPointer), use the VAR keyword in front of the parm definition. If LP doesn't precede the C data type, do not use the VAR keyword.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Lite and the Novell APIs
DOCUMENT ID: FYI.A.3344
DATE: 26SEP91
PRODUCT: NetWare C Interface DOS, NetWare System Calls
PRODUCT VERSION: 1.20
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There has been some confusion as to what APIs are supported by NetWare Lite. NetWare Lite is a peer-to-peer operating system. It does not support the Novell Core Protocol (NCP). Therefore, none of the normal APIs are supported. However, Communication Services are supported. This includes IPX, SPX and NetBios.
SOLUTION
NA
FYI: Btrieve File Corruption and the NetWare Shell
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve File Corruption and the NetWare Shell
The NetWare 3.02 and 3.20 shells have a cache buffer bug that results in invalid file pointers and file corruption. This has been especially true for database applications, such as Btrieve for DOS. The normal symptom of this problem is status 2's after upgrading to NetWare 3.10 or 3.11. The latest release of the shell, 3.22, corrects most of the cache corruption problems.
There has been one instance of seeks returning an invalid EOF with the 3.22 shell. This will be fixed in the next release of the shell.
SOLUTION
Upgrade to the 3.22 shell. This can be obtained from the NDD forum on Compuserve. The name of the zip file is DOSUP3.ZIP.
FYI: User List in BCONSOLE.NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: User List in BCONSOLE.NLM
DOCUMENT ID: FYI.A.3012
DATE: 26SEP91
PRODUCT: BCONSOLE.NLM
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: BCONSOLE.NLM does not show a user's open files when a user is chosen from the Bconsole userlist option.
ISSUE/PROBLEM
If multiple users are accessing Btrieve files, BCONSOLE.NLM will not show the list of files opened by a particular user when you choose a user-id from the BCONSOLE / USERLIST menu. It shows file information for only one user; the lists for the rest of the users are blank.
SOLUTION
It is a bug and has been source fixed for version 5.15a, which is available on NetWire's NOVA forum, Data Library 5.
FYI: Btrieve for OS/2 Multi Child Processes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve for OS/2 Multi Child Processes
DOCUMENT ID: FYI.A.1845
DATE: 26SEP91
PRODUCT: NetWare Btrieve (OS/2 Requester)
PRODUCT VERSION: 5.17x
SUPERSEDES: NA
SYMPTOM: Status 91's and 2001's
ISSUE/PROBLEM
When trying to run child processes from a parent process, several errors can occur. With the 5.17x requesters, if a negative value is returned, it is possible to have run out of IPX SOCKETS to talk on. It is also possible that the station has run out of memory. Normally, a status 91 should be returned when the IPX connection cannot be made. Unfortunately it is not being trapped into a status of 91. A lack of memory should be indicated by a 2001.
SOLUTION
In the NET.CFG file, which lives in the root of C: for an OS/2 workstation,place the following lines:
PROTOCOL STACK IPX
SOCKETS 128 <= that is the largest value
This will allow up to 128 IPX sockets for SPX to talk on. Remember also that the PROTOCOL STACK SPX line should have SESSIONS set to an applicable number.
If memory is short, the system will begin returning an OS/2 error of 89 and it will not be possible to start other sessions. Possibilities are to start Btrieve with smaller parameters or get more memory.
FYI: How to use the Btrieve For Windows Requester
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: How to use the Btrieve For Windows Requester
DOCUMENT ID: FYI.A.1844
DATE: 26SEP91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Many people inquire about how to use the Btrieve for Windows Requester to communicate with NetWare Btrieve from a Windows application. This is to review all the different possibilities when using the requester and some confusing issues about the requester.
Originally, the Btrieve for Windows Requester was going to be a pure Dynamic Link Library (DLL). There would be only one DLL and it would talk to Windows and then back to SPX. However, due to unforeseen circumstances, that particular implementation was not possible and a protected mode interface was developed. Now most people that faithfully read their manuals will notice that in the Installation and Operation manual for Btrieve for MS-Windows (August1990 edition) there is a chart (on page 2-2) showing how to use the requester. That chart reflects the implementation the way it was originally intended, not the way it was actually implemented. The reason for this is simple: the book came before the requester!
The requester is implemented with a protected mode interface. To the developer and user this means that DOS Btrieve Requester (BREQUEST.EXE - versions will be discussed below) must be loaded before going into Windows, and WBTRCALL.DLL must be in the current drive or search map. If local files (drives A-D) will be accessed, there must be a WBTRLOCL.DLL in the current drive or search path. Because BREQUEST is loaded before going into Windows, initialization features such as the /r and /s are no longer needed for the Windows requester. Those particular parameters get set at the time BREQUEST is loaded.
To initialize the requester WBTRCALL.DLL you must specify a [brequestDPMI]configuration section in the WIN.INI file. You can establish the number of tasks, the data message length, parameter checking, and whether or not local Btrieve (WBTRLOCL.DLL) will be used. The initialization routine WBRQSHELLINIT(string) is no longer valid and will not have any affect upon the current implementation of the requester. The reason for this is that the parameters are not valid for the DLL. All of this information can be found in the README.DOC which is supplied with the Btrieve requesters.
Version Information:The original version of Btrieve for Windows was 5.10. This came with the development kit, and is the client (or local) version. The requester started at v5.15. Below is a chart showing the current versions of the Btrieve for Windows requesters.
BREQUEST.EXE version 5.15
WBTRCALL.DLL version 5.17a
The above two files are available on NetWire in Library 5 in the file BTRREQ.ZIP. The original version of the Windows requester, WBTRCALL.DLL was version 5.15, and was distributed with the 5.15 release of NetWare Btrieve. Yet another release of the Windows requester (v5.16) came out with NetWare 3.1 and NetWare 2.2. It was accompanied by the 5.16 release of the DOS requester.
WBTRCALL.DLL version 5.16 had a slight problem. It gave erroneous message to the user about running an inappropriate version of Windows. The problem was reported and was addressed for the next release of the Windows requester, version 5.17a.
In conclusion, remember that the best source of information about the requesters is in the README.DOC file which come with the requesters. They usually have some tidbit of information that you need to know before proceeding.
SOLUTION
NA
FYI: Chkparms in Btrieve for Windows Local
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Chkparms in Btrieve for Windows Local
DOCUMENT ID: FYI.A.1628
DATE: 24SEP91
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When debugging a Btrieve for Windows problem, it's always been convenient, when using the requester, to set CHKPARMS=YES and have the DLL validate the size of parameters passed to the DLL. Until now, it was always thought that this was only available to the requester version of the DLL.
SOLUTION
The Btrieve for Windows client version (non-client/server) does have the capability of validating parameters. When TRACEFILE= has a valid file name in the WIN.INI file, Btrieve for Windows client version WILL validate parameters. Parameters are valid if you own the amount of memory the parameter is supposed to occupy.
FYI: Status 14, Pre-Image Open Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 14, Pre-Image Open Error
DOCUMENT ID#: FYI.A.3908
DATE: 20SEP91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES:
SYMPTOM: Status 14
ISSUE/PROBLEM
Within a transaction, if an abort transaction is initiated with a 200 bias (221), the next time the file is accessed, a Status Code 14 (Pre-Image Open Error) is returned.
SOLUTION
Do not issue an abort transaction with an opcode 221. If you do, you will have to re-create the file; you will not be able to open it in any
mode.
FYI: GetAllKnownNetworks Bug
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetAllKnownNetworks Bug
DOCUMENT ID: FYI.A.1632
DATE: 19SEP91
PRODUCT: Diagnostic Services
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NWCare "locks up"
ISSUE/PROBLEM
The Diagnostics Services function call GetAllKnownNetworks seems to return 131 network addresses on the first call when made to a 3.10 file server. This would cause a "normally" coded program, like NWCare, to call the function iteratively, forever.
SOLUTION
DIAGFIX.NLM (a patchman fix) fixes this bug and must be run on 3.10servers. To keep applications making this call from hanging on an unpatched 3.10 server, the program should only call the function iteratively when the number of networks equals 128 (instead of greater than 127 or greater than or equal to 128). There is no fix to keep NWCare from "locking up" except to install the patch on all 3.10 servers that may be queried.
FYI: Lost Temporary Directory Handle
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lost Temporary Directory Handle
DOCUMENT ID#: FYI.A.1521
DATE: 19SEP91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: Temporary Directory Handle "[" (26) is deallocated
ISSUE/PROBLEM
In the following API calls, Temporary Directory Handle "[" (26) is allocated for local use, then deallocated. If an application has allocated temporary directory handle "[" (26) and then calls one of the following APIs, when the API call completes, directory handle "[" (26) will no longer be a valid handle.
API calls: GetEffectiveRights PurgeSalvagableFile
RecoverSalvagableFile
SetTrustee
ScanDirEntry
ScanEntryForTrustees
ScanFileEntry
ScanFilePhysical
SOLUTION Do not use directory handle "[" (26) when making these API calls, or allocate the directory handle again after the API function call.
FYI: Adding Supplemental Indexes Through Xtrieve PLUS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Adding Supplemental Indexes Through Xtrieve PLUS
DOCUMENT ID#: FYI.A.1111
DATE: 12SEP91
PRODUCT: Xtrieve PLUS for DOS
PRODUCT VERSION: 4.10
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
A supplemental index cannot be added to a file when it is currently active in a view. There is no error message returned when you try to do this, but the only option shown after selecting INDEX and your file name, is SHOW. What is normally shown at this point is SHOW, DEFINE, and REMOVE.
Be aware that although an error message is not returned, the problem could be that the file is currently active in a view, and you will need to release it before adding the supplemental index.
SOLUTION
All you have to do is release the view by selecting VIEW/MANAGE/RELEASE, before adding the supplemental index.
FYI: Using Btrieve Requester DLL's for OS/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using Btrieve Requester DLL's for OS/2
DOCUMENT ID#: FYI.A.2106
DATE: 11SEP91
PRODUCT: NetWare Btrieve VAP or NLM
PRODUCT VERSION: All Versions
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
There have been a lot of FYI's on this subject, however there is still some confusion out there. This FYI is an attempt to clarify some of these misunderstandings. Most of the FYI's regarding this subject mention BTRCALLS.DLL but do not necessarily list the version number, date stamp and file size. The following is an attempt to do just that:
* Intermittent status 95 problem on OPEN operation when used with SPX.SYS bundled with the Netware OS/2 requester version 1.20 and 1.21. You must use patched SPX.SYS (dated 01-04-91 19,648).
* Will not work at all with Netware OS/2 requester 1.3.
* Very slow performance
BTRCALLS.DLL 10/16/90 29,802 5.15
* Intermittent status 95 problem on OPEN operation when used with SPX.SYS bundled with the Netware OS/2 requester version 1.20 and 1.21. You must use patched SPX.SYS (dated 01-04-91 19,648).
* Does not work at all with Netware OS/2 requester v1.3.
* Performance increase over version 5.10, but still slow.
BTRCALLS.DLL 02/19/91 55,112 5.17
* This version of the DLL must be used with 1.3 Netware OS/2 requester, however there is a status 95 problem when running multiple tasks trying to open the same btrieve file. Only solution is to use BTRCALLS.DLL v5.15 and the Netware OS/2 requester v1.21, however it will have a significant performance degradation.
* You can access local files with renamed DLL (MAKELOCAL)
* Maximum record length cannot exceed 300 bytes
BTRCALLS.DLL 04/30/91 19,438 5.17a
* This version of the DLL must be used with 1.3 Netware OS/2 requester, however there is a status 95 problem when running multiple tasks trying to open the same btrieve file. Only solution is to use BTRCALLS.DLL v5.15 and the Netware OS/2 requester v1.21, however it will have a significant performance degradation.
* Cannot access local Btrieve files with DLL renamed with MAKELOCAL. Btrieve will return status 76.
* Fixed maximum record length limit of 300 bytes.
When referring to the Netware OS/2 requesters, you are talking about approximately 40 files, with the two most important being the NWREQ.SYS and SPX.SYS files.
NETWARE OS/2 REQUESTERS=======================
NWREQ.SYS 11/09/91 11,664 v1.20
SPX.SYS 09/22/89 19,120
* Can only run with OS/2 version 1.2
* Only allows a maximum of 16 SPX Sessions. Must check the following command line in the NET.CFG:
Protocol Stack SPX
Sessions 16
If this is set higher than 16 the workstation will GPI.
* SPX.SYS causes delay in packet transmission which caused Btrieve to give intermittent status 95. Must be replaced with patched SPX.SYS (dated 01/04/91 19,648 bytes)
NWREQ.SYS 06/18/90 13,760 v1.21
SPX.SYS 05/11/90 19,616
* Can run with OS/2 versions 1.2 and above.
* Only allows a maximum of 16 SPX Sessions. Must check the following command line in the NET.CFG:
Protocol Stack SPX
Sessions 16
If this is set higer than 16 the workstation will GPI.
* SPX.SYS caused delay in packet transmission which caused Btrieve to give intermittent status 95. Must be replaced with patched SPX.SYS (dated 01/04/91 19,648 bytes)
NWREQ.SYS 02/13/91 16,864 v1.3
SPX.SYS 02/13/91 12,208
* Completely rewritten - much improved performance
* Fixed limitation of only 16 SPX sessions
* Can run with OS/2 versions 1.2 and above
* SPX.SYS timing problem still causing status 95 problem (2 tasks)
The two most frequent problems that your customer will encounter will be General Protection errors or status 95 errors. If you have a customer experiencing status 95 problems, have them give you all the file sizes and date stamps for the NWREQ.SYS, SPX.SYS and BTRCALLS.DLL. This will tell you which status 95 problem they have and what they will have to do to work around it. Obviously, first work around is to use the client DLL. If the customer is experiencing General Protection errors, make sure that the appropriate version of Netware OS/2 requesters match the version of OS/2 and that the SPX.SYS is the appropriate file that is sent with the NWREQ.SYS file.
CONFIDENTIAL
This FYI was generated through a lot of research through old FYI's and several technicians memory recall.
FYI: GetFileServerLANIOStats, part 2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetFileServerLANIOStats, part 2
DOCUMENT ID: FYI.A.1631
DATE: 10SEP91
PRODUCT: C Interface - DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The value for Total Packets Received in the STATISTICS/LAN I/O STATISTICS menu in FCONSOLE does not seem to have a matched value in the function call GetFileServerLANIOStats.
SOLUTION
This value is a combination of totalFileServicePackets and totalOtherPackets,both members of the SERVER_LAN_IO structure returned from GetFileServerLANIOStats. FCONSOLE reports the combined total, but the function returns the totals separately for File Service and non-File Service packets.
FYI: GetFileServerLANIOStats, part 1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetFileServerLANIOStats, part 1
DOCUMENT ID: FYI.A.1630
DATE: 10SEP91
PRODUCT: C Interface - DOS
PRODUCT VERSION: 1.2
SUPERSEDES: NA
SYMPTOM: Negative packet counts
ISSUE/PROBLEM
Large values returned by this function through the SERVER_LAN_IO structure will appear as negative values. This is not usually evident on systems that have not been up for a long time.
SOLUTION
The values defined in the structure, SERVER_LAN_IO, in NWCONSOL.H, are defined as ints and longs. They should, however, be WORDs and LONGs. WORDs are unsigned ints and LONGs are unsigned longs.
FYI: Brieve Status 2s
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brieve Status 2s
DOCUMENT ID#: FYI.A.3338
DATE: 09SEP91
PRODUCT: Btrieve Single User
PRODUCT VERSION: 4.11
SUPERSEDES: N/A
SYMPTOM: Btrieve Status 2s
ISSUE/PROBLEM
A customer was receiving status 2s when performing transactions on a PC with the American Megatrends CNT 286 BIOS, version 1.3. The customer was using Btrieve version 4.11.
SOLUTION
Upgrade to Btrieve 5.10a. The customer's problem disappeared after upgrading to 5.10a.
FYI: 3.11 Server GPIs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: 3.11 Server GPIs
DOCUMENT ID#: FYI.A.3337
DATE: 09SEP91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: 3.11 Server GPIs
ISSUE/PROBLEM
The Btrieve NLM, version 5.15, when used in conjunction with the 5.16 DOS Requester and 5.16 Windows Requester caused a 3.11 server to GPI. This occurred with any Btrieve request. The GPIs did not occur as long as Btrieve was not accessed.
SOLUTION
The customer was using the Proteon NWR-199X token ring driver, version 1.00, dated June 22, 1990. The problem disappeared after they upgraded their driver to the 1.04 driver dated February 25, 1991.
FYI: Syntax for Btrieve filenames
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Syntax for Btrieve filenames
DOCUMENT ID: FYI.A.1916
DATE: 09SEP91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.x
SUPERSEDES: FYI.A.1104, FYI.A.2007
SYMPTOM: NA
ISSUE/PROBLEM
When doing a Btrieve OPEN on a network file with NetWare Btrieve, the filename does not have to contain the drive letter, i.e., you do not have to have a drive mapped to the volume that the file resides on. An earlier FYI (FYI.A.2007) listed four formats that can be used to access files in this manner. Just to emphasize, you must be attached to the server that the file resides on! Otherwise you will get a Btrieve status 11 - Invalid File Name.
Another FYI (FYI.A.1104) mentioned the same thing about accessing files through Xtrieve PLUS version 4.01a. This is the file format specified in that FYI:
\\servername\volume:dir\dir\filename
With the current version of NetWare Btrieve (5.15), attempting to open a Btrieve file with this syntax will result in a status 11. With Xtrieve PLUS version 4.01a and Btrieve 5.15 you also get a status 11. The correct syntax is:
\\servername\volume\dir\dir\filename
SOLUTION
NA
FYI: Status 20 when Brequest Not Loaded Before Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 20 when Brequest Not Loaded Before Windows
DOCUMENT ID#: FYI.A.2415
DATE: 06SEP91
PRODUCT: Btrieve for Windows Requester
PRODUCT VERSION: 5.17a
SUPERSEDES: N/A
SYMPTOM: Status 20
ISSUE/PROBLEM
Versions 5.15 (9456 bytes) and 5.16 (11377 bytes) of the Btrieve for Windows Requester (WBTRCALL.DLL) were not returning a status 20 when Brequest was NOT loaded before entering Windows 3.0. Instead, strange status codes were returned when trying to open a Btrieve file, or the file would open with a status 0, and subsequent Btrieve calls would return status 0, but the Btrieve calls were not successful (for example, no data was returned on a GetFirst).
SOLUTION
The new Btrieve for Windows Requester 5.17a (11712 bytes) fixes this problem. It correctly returns status 20 when Brequest is not loaded before entering Windows 3.0.
FYI: __qmalloc() might block
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: __qmalloc() might block
DOCUMENT ID#: FYI.A.3817
DATE: 05SEP91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKa
SUPERSEDES: N/A
SYMPTOM: __qmalloc() seems to relinquish control
ISSUE/PROBLEM
In the documentation of Network C for NLMs SDK(a), __qmalloc is flagged as non-blocking, which means it will not relinquish control. However, sometimes it seems to block.
SOLUTION
If __qmalloc() is called with equal to or greater than the size of the cache buffers, it might block. If it is called with less than the size of cache buffers, it will not block. The cache buffers size can be viewed or changed with the console set command. The default size is 4096 bytes.
FYI: OS/2: The difference between the Novell and IBM RESET command
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2: The difference between the Novell and IBM RESET command
DOCUMENT ID#: FYI.A.2907
DATE: 03SEP91
PRODUCT: OS/2 SDK
PRODUCT VERSION: 1.3a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The Novell RESET command under the OS/2 NetBIOS emulator behaves differently than the IBM OS/2 NetBIOS RESET command. The Novell OS/2 NetBIOS RESET command works the same way as the DOS NetBIOS RESET command. It applies to the entire workstation; it resets the local adaptor status and clears the name and the session tables, and it requires exclusive access.
The IBM RESET command works the same way as the OS/2 RESET command. In the OS/2 environment, the RESET command applies only to the application program and not to the entire workstation. An application program issues a RESET to allocate resource for itself from a pool of NetBIOS resources. Under IBM OS/2 NetBIOS, when the RESET is issued, only resources applicable to that application are given back to NetBios. For that application, all current NetBIOS names are deleted, all current sessions are aborted, and all outstanding NCBs are purged. After resources are freed, new resources are acquired for the application according to the RESET request.
SOLUTION N/A
FYI: Windows & TBMI 1.1 problems
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows & TBMI 1.1 problems
DOCUMENT ID#: FYI.A.2630
DATE: 03SEP91
PRODUCT: Windows SDK
PRODUCT VERSION: 1.22
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
TBMI version 1.1, which is shipping with the Windows SDK 1.22 is experiencing several problems.
It does not work correctly with TASKID 1.0 which also comes with SDK 1.22. It will hang Windows, requiring in most cases a hard boot. The problems that were seen, involved running a DOS communication based application. Slightly different lock ups occurring if the application was receiving or transmitting. Both Enhanced mode and Standard were tried.
Some clients also complained that running Window based applications caused problems, although I could not duplicate this.
SOLUTION
Currently the only solution is to use TBMI 1.0, which came with the Windows SDK version 1.21.
FYI: Btrieve Transactions & Lock Bias Values
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Transactions & Lock Bias Values
DOCUMENT ID#: FYI.A.1742
DATE: 02SEP91
PRODUCT: Btrieve
PRODUCT VERSION: All
SUPERSEDES: N/A
SYMPTOM: Status 85 vs. Waiting
ISSUE/PROBLEM
The following is a clarification of how a lock bias works in conjunction with Btrieve transactions. There are two types of transactions - Wait Transactions and NoWait Transactions. To start up a wait transaction, you issue a Btrieve operation 19, 119 or 319 (all of these act the same). If any operation you attempt to do in a transaction started this way cannot be done due to the file being unavailable, Btrieve will wait instead of returning control to your application. A file will be unavailable if another workstation is currently accessing the file within a transaction, or another workstation has a record in the file locked. Also, note that any bias put on an operation inside the transaction is ignored. Examples of this are:
In Example 1, Workstation 2 will wait on the Open attempt until Workstation 1 completes its transaction. This Wait occurs because Workstation 2 started its transaction with a Wait Bias. In Example 2, Workstation 2 will wait on the Open attempt until Workstation 1 releases all record locks for File A. Notice the NoWait bias added to the Open was ignored; the bias of the transaction overrides any bias added to an operation within the transaction.
Both of these examples attempt to open the file inside the transaction. The same results will occur if instead you open the file before the transaction is started, and read from the file within the transaction. In other words, the waiting occurs when trying to obtain a file lock for the file being accessed inside a transaction, whether that access is an open or read operation.
If you do NOT want Workstation 2 to wait in the above examples, you should start your transaction with an operation 219 or 419. Then, any subsequent file access that can not be completed will return a status 85 - File In Use. Again, this NoWait bias overrides any bias used within the transaction, so you cannot force a wait.
SOLUTION N/A
FYI: Btrieve File Level Locking
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve File Level Locking
DOCUMENT ID#: FYI.A.1741
DATE: 02SEP91
PRODUCT: Btrieve
PRODUCT VERSION: All
SUPERSEDES: N/A
SYMPTOM: Status 85
ISSUE/PROBLEM
There appears to be some confusion in the use of a Btrieve lock bias on an Open operation. First of all, successfully opening a file with a 100, 200, 300 or 400 operation code does NOT lock the file. In fact, in general, it has no effect at all!
There is only one circumstance where a lock bias added to an open actually has an effect -- IF a) you are using Client Btrieve, AND b) workstation 1 is currently accessing the file in a transaction, AND c) you want to wait until workstation 1 has finished its transaction and then have the open performed, instead of having an error code returned to the application. Normally, with Client Btrieve, if you attempt to open a file that another workstation is accessing within a transaction, your application will receive a Btrieve status code 85 - File In Use. If you don't want to receive this error code, but want Btrieve to wait until the other workstation Ends or Aborts the transaction so you can open the file successfully, you can issue your Btrieve open operation with a Wait Lock Bias (+100 or +300). Again, this will not lock the file; it only tells Btrieve to wait until the file is available without returning control to the application.
NetWare Btrieve will allow a worstation to open a file, even if another workstation is accessing it within a transaction. In both types of Btrieve (NetWare and Client), if a workstation already has a file open when a second workstation accesses the same file in a transaction, the first workstation can continue to access the file with read operations, but will not be able to perform any write (Insert/Delete/Update) operations, or access the file within its own transaction until the second workstation Ends or Aborts its transaction.
Suppose you DO want to lock a file. How do you do it? There are two ways. The first is by opening the file in Exclusive Mode (using a Key Number of -4 on the open call). This will only be successful if no other workstation has the file open. If this operation is successful, no other workstation will be able to open this same file, in any mode (including Read-Only), until the user who has it open in Exclusive Mode closes the file.
The second method is by accessing the file within a transaction. As soon as you access a file in any way from within a transaction (opening or reading from the file), you are granted a file level lock. Other users can still read from this file, but cannot perform any modifications. When using Client Btrieve, as discussed above, you also prevent other users from opening the file when you have it locked in this manner.
SOLUTION N/A
FYI: Illegal Lock Bias
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Illegal Lock Bias
DOCUMENT ID#: FYI.A.1740
DATE: 02SEP91
PRODUCT: Btrieve
PRODUCT VERSION: All
SUPERSEDES: N/A
SYMPTOM: Btrieve Status 81
ISSUE/PROBLEM
In the course of experimenting with Btrieve and locking, I discovered that Btrieve accepts any positive multiple of 100 as a valid lock bias. According to the Btrieve Programmer's Manual, page 4-82 (April 1990 Edition), the only valid lock bias values are: +100 (Single, Wait), +200 (Single, NoWait), +300 (Multiple, Wait), and +400 (Multiple, NoWait). However, +500, +600, etc. are all accepted by Btrieve, and all perform as a +400. For example, operation 712 attempts to lock the first record of the file, and returns an error code if it can not get the lock. Similarly, you can specify on operation of 10019 to start a NoWait Transaction.
Unfortunately, a Btrieve Unlock operation (27) does not successfully remove one of these locks. Instead, it returns a status 81 - Lock Error. However, closing the file will successfully clear any locks made with bias values greater than 400.
SOLUTION N/A
FYI: Btrieve Transaction Control File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Transaction Control File
DOCUMENT ID#: FYI.A.2414
DATE: 30AUG91
PRODUCT: Btrieve for DOS and NetWare Btrieve
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The Btrieve transaction control file is used to keep track of which Btrieve files are accessed within a transaction. Btrieve filenames, including their paths, are only written to this file during the End Transaction call, just in case the system fails during this call. If the End Transaction is successful, then Btrieve is supposed to delete the filenames from the transaction control file. If the End Transaction is not successful, then Btrieve will finish any uncompleted operations within the transaction the next time the files are opened.
When using Btrieve for DOS, the transaction control file is specified by the /t loading parameter. For example, the following command will load Btrieve with a page size of 2048, a memory size of 25, and a transaction control filename of TRANS.CON in the DATA directory off of the P drive:
Btrieve /p:2048 /m:25 /t:P:\DATA\TRANS.CON
All Btrieve for DOS users on a network must share the same transaction control file. So, each copy of Btrieve should have a /t parameter that points to the same physical location on the network where the transaction control file resides.
When using transactions with NetWare Btrieve, a system defined transaction control file is automatically created in the \SYS:SYSTEM directory. The name of the file is BTRIEVE.TRN. When Btrieve is loaded, both the "Number of transactions" and the "Number of files per transaction" in the BSETUP "Set Configuration" menu should be greater than zero. The transaction control file is actually created when Btrieve for DOS or NetWare Btrieve is loaded.
Have you ever wondered what kind of rights a user needs in the directory that contains the Btrieve transaction control file? If NetWare Btrieve is being used, then the user does not need any rights to that directory since NetWare Btrieve has 'supervisor' rights, and it is NetWare Btrieve which creates and writes to the Btrieve transaction control file.
However, if Btrieve for DOS is being used, then the user must have a minimum of 'write' rights in the directory specified for the transaction control file. If a user has the minimum rights required, then the transaction control file must exist already when the user loads Btrieve with the /t: option. If the user has 'create' rights in the directory, then the transaction control file does not need to exist before Btrieve is loaded with the /t: option.
Now that we are on this subject, have you ever wondered if filenames are actually deleted from the transaction control file when a Btrieve End Transaction operation is performed?
For Btrieve for DOS, all of the filenames are not deleted out of the transaction control file until right before Btrieve writes to it. When an End Transaction operation is executed, Btrieve deletes all filenames in the transaction control file, and then writes all the filenames from its transaction buffer into the transaction control file. However, currently, Btrieve for DOS is not cleaning up this transaction buffer, so filenames from past transactions may also be written to the file. This does not cause a problem since Btrieve writes the number of valid filenames at the beginning of the transaction control file. Therefore, Btrieve knows which files have operations that need to be completed.
Let's say that five files are involved in a transaction, and their names are written into the transaction control file when the End Transaction operation is performed. Then later on, only one file is used in a transaction. Will the original five filenames be deleted out of the transaction control file and replaced by the new filename, or will the new filename overwrite the first filename in the transaction control file, leaving files two through five still in the transaction control file?
This is the current answer for Btrieve for DOS:
If the same workstation is being used, and Btrieve for DOS is not unloaded and reloaded between transactions, Btrieve will write the new filename over the first filename in the list of five. If Btrieve is unloaded and reloaded between transactions, only the new filename will appear in the transaction control file. Also, if different workstations are used, only the new filename will appear in the transaction control file.
SOLUTION N/A
FYI: Executables Can Grow After Applying Patches
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Executables Can Grow After Applying Patches
DOCUMENT ID#: FYI.A.2017
DATE: 30AUG91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: Applying the patches to the Btrieve NLM increases the size of the NLM.
ISSUE/PROBLEM
The patches for the Btrieve 5.15 NLM cause the size of the NLM to grow. As of 8/30/91 and up through patch #31, the NLM's size will increase from 64616 bytes to 65148 after the patches are applied. There are 3 reasons for this growth:
1. To expand the space for the patches themselves
2. To edit the relocation table of the NLM
3. To put in additional calls to CLIB functions
As of 8/30/91, the Btrieve 5.15 NLM is the only program that increases in size, but all of our programs are eligible for this growth with future patches.
SOLUTION N/A
FYI: Get Position on Key-Only File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Get Position on Key-Only File
DOCUMENT ID#: FYI.A.2413
DATE: 29AUG91
PRODUCT: Btrieve
PRODUCT VERSION: 5.1x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Btrieve (DOS, VAP and NLM) allows a user to perform a Get Position on a key-only file. This probably should not be allowed since the physical location of the keys move around when the Btrieve file is changed (ex: inserting new records). The "Btrieve Programmer's Manual" (April 1990 Edition) does not currently warn the user that the physical position of the key in a key-only file may change. A Get Position would only be useful if the Btrieve file never changed.
SOLUTION N/A
FYI: NetWare Btrieve and NetWare SQL requesters
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare Btrieve and NetWare SQL requesters
DOCUMENT ID#: FYI.A.1739
DATE: 29AUG91
PRODUCT: NetWare Btrieve, NetWare SQL
PRODUCT VERSION: 5.15, 2.11
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Following is a list of the current versions of the NetWare Btrieve and NetWare SQL requesters for the supported workstation platforms:
NetWare Btrieve (NLM and VAP) v5.15
-----------------------------------
DOS requester: v5.16 BREQUEST.EXE 18060 2-12-91 5:25p
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Shell v3.22 and the shellRequestCount
DOCUMENT ID#: FYI.A.1520
DATE: 29AUG91
PRODUCT: NetWare Shell
PRODUCT VERSION: 3.22
SUPERSEDES: N/A
SYMPTOM: The ShellRequestCount returned from the v3.22 shell is
incorrect; value is too high.
ISSUE/PROBLEM
The GetShellStatistics call when issued against the v3.22 shell will return a value in the ShellRequestCount that is too high. The value will be in the million+ range a minute after the shell was loaded. This does not occur in any of the earlier versions of the shell.
SOLUTION
Use an earlier shell version until a the bug is fixed.
FYI: NetWare 3.11 and ReadOnly Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 3.11 and ReadOnly Files
DOCUMENT ID#: FYI.A.3340
DATE: 28AUG91
PRODUCT: NetWare
PRODUCT VERSION: 3.11
SUPERSEDES: N/A
SYMPTOM: An open of a file for read/write access is successful,
even though the file is flagged ReadOnly.
ISSUE/PROBLEM
DOS Returns an error 5 in this situation. NetWare 3.11, however, will allow access to the file. A ReadOnly file handle is returned to the application. Any attempts to write to the file will fail. This is a feature of NetWare 3.11 at the request of numerous customers.
SOLUTION N/A
FYI: Portable NetWare & The APIs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Portable NetWare & The APIs
DOCUMENT ID#: FYI.A.3339
DATE: 28AUG91
PRODUCT: NetWare C Interface DOS, NetWare System Calls
PRODUCT VERSION: ALL
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
There have been some questions raised regarding the NetWare APIs, specifically client, accessing a Portable NetWare server. According to Provo the APIs should behave just as if they were dealing with a 3.x file server.
One side note, NLMs are not supported under Portable Netware. However, it is possible to write host based applications that talk to the NetWare Server. Most Portable NetWare vendors supply libraries that allow host applications to access the NetWare task.
SOLUTION N/A
FYI: Windows Requester Overwrites Memory
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows Requester Overwrites Memory
DOCUMENT ID#: FYI.A.3336
DATE: 28AUG91
PRODUCT: NetWare Btrieve Requester
PRODUCT VERSION: 5.16
SUPERSEDES: N/A
SYMPTOM: Unrecoverable Application Errors (UAE)
ISSUE/PROBLEM
The Windows Requester, version 5.16, returns garbage in the key buffer parameter when inserting data into a data-only file. This does not occur in the local version.
SOLUTION
Until a patch is written the developer can specify a key buffer of 255 bytes. This will keep Btrieve from overwriting memory and causing the UAE.
FYI: Options with some HLLAPI API's
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Options with some HLLAPI API's
DOCUMENT ID#: FYI.A.2825
DATE: 28AUG91
PRODUCT: Netware 3270 Tools
PRODUCT VERSION: 1.5
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The HLLAPI API functions which allow NULL, BLANK and * for the Presentation Space ID, Function-22 (Find Session Status), Function-31 (Find Field Positon) and Function-32 (Find Field Length) are only valid for the following conditions:
i. NULL and BLANK are valid only if there is an already connected
Presentation Space.
ii. * is valid anytime, but refers to the DOS session (which is
meaningless in our implementation)
SOLUTION N/A
FYI: Misprint in the Documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Misprint in the Documentation
DOCUMENT ID#: FYI.A.2824
DATE: 28AUG91
PRODUCT: Netware 3270 Tools
PRODUCT VERSION: 1.5
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
In the HLLAPI programmer's guide on page 4-37, Function-10 (Query Sessions) is documented as returning the number of host sessions in the length parameter. The documentation should say that the number returned in the length parameter is the sum of the number of host sessions plus the number of PC session(s) (always 1 in the Novell implementation). Say for example, when you have 2 host sessions configured, the return length will be 3 and when you have 1 host session configured, the return length will be 2.
In page 4-94 of the same guide, Function-32 (Find Field Length) the Presentation space offset for the 'Find' must be specified in a returned code parameter upon entry.
SOLUTION N/A
FYI: HLLAPI Entry Point in the Memory
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: HLLAPI Entry Point in the Memory
DOCUMENT ID#: FYI.A.2823
DATE: 28AUG91
PRODUCT: Netware 3270 Tools
PRODUCT VERSION: 1.5
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The HLLAPI program establishes the interrupt vector (0000:0400 - 1024 bytes) table at the storage location 0000:01FC. Since HLLAPI uses interrupt 0x7Fh or 127 and multiplying by four (four byte addresses) will give us 0x1FC or 508, you will see a four byte address at 0:1FC which is a segment and the offset of the HLLAPI.EXE program. In this example, the address of the TSR is 4E21:2C70 and that is where the HLLAPI's actual entry point starts. If you subtract 3 bytes off offset 2C70, at 2C6D you will see the signature "CXI" which is the name of the company that Novell has bought. So every time your LIM (Language Interface Module) invokes HLLAPI.EXE, it checks for the "CXI" signature at the above address location in the interrupt vector table by doing a 'strcmp'. Upon successful comparison the HLLAPI.EXE is loaded. The September Bullets article will give you a detailed description.
SOLUTION N/A
FYI: GetOSVersionInfo Documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetOSVersionInfo Documentation
DOCUMENT ID#: FYI.A.1519
DATE: 28AUG91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: The structure defined in the manual does not match the
actual definition in the header file.
ISSUE/PROBLEM
The diagnostic call GetOSVersionInfo documentation (July 1990 edition), page 7-56, shows an OSVersionStruct as the following:
BYTE machineID
char *OSText
char *OSVersion
char *hardwareTypeText
However, the structure is actually defined in DIAG.H as follows:
BYTE machineID;
char *versionData;
The version Data string contains the OSText, OSVersion, and hardware Type Text fields separated by binary 0's.
SOLUTION N/A
FYI: Queue Jobs and User disk restrictions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Queue Jobs and User disk restrictions
DOCUMENT ID#: FYI.A.2627
DATE: 23AUG91
PRODUCT: C Interface
PRODUCT VERSION: 1.2x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
When a user has their disk space restricted and they are trying to submit a queue job (for a queue job server, not the Novell print server), the job gets created with 0 bytes if their disk space was exceeded. No error indications are encountered through the creation of the job.
This problem was duplicated on NW 3.11; it may be a shell problem (possibly a little deeper). The indication is that the Job does not take higher privileges than the user, thus incorrectly creating the job. It would seem that the Job creation should not be limited by a user's disk spaced since it should have higher rights in maintaining the queue jobs.
The calls used to test this are the C-Interface calls, CreateJobandOpenFile, CloseFileAndStartQueueJob, and the 'C' library function 'write'. All calls returned a successful return code.
SOLUTION N/A
FYI: AFPScan & GetFileInformation bugs.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: AFPScan & GetFileInformation bugs.
DOCUMENT ID#: FYI.A.2626
DATE: 23AUG91
PRODUCT: C Interface for Windows
PRODUCT VERSION: 1.2x SDK
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The functions AFPScanFileInformation and AFPGetFileInformation do not work correctly on all but the first call. The first call returns correct information, but the next call fails with an error 156 (invalid path) or 255 (which is anything). The 156 occurs when the first file is a MAC created file (using the AFPCreateFile API), and when the first file is a normal DOS file the error is 255.
SOLUTION N/A
FYI: WINDOWS, Making IPX/SPX calls without the shell being loaded
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WINDOWS, Making IPX/SPX calls without the shell being loaded
DOCUMENT ID#: FYI.A.2904
DATE: 21AUG91
PRODUCT: NetWare C for Windows
PRODUCT VERSION: SDK v1.22
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Doing IPX/SPX calls under Windows without the shell being loaded is possible. When you load the shell, Windows in turn loads the NETWARE.DRV, which is Windows' entry point into the shell. If you do not load the shell, Windows will NOT load the NETWARE.DRV. In some cases when you do not have a NetWork file server and you only have two workstations you can still send packets between stations by making your normal IPX/SPX calls using the Windows API/SDK. But, you must make sure that you are not making any calls in your program that will reference any other DLL, except the IPXSPX.DLL and you must make sure that you are not importing any other DLL in the .DEF file except the IPXSPX.DLL. Windows will load any DLLs that you have under your IMPORT statement in the def file, regardless if the function call is being used in your code or not.
SOLUTION N/A
FYI: OS/2, The correct numbers of the LPT PORTS.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2, The correct numbers of the LPT PORTS.
DOCUMENT ID#: FYI.A.2903
DATE: 21AUG91
PRODUCT: OS/2 SDK
PRODUCT VERSION: 1.3a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
When using the NWSpoolStarCapture(), you can only pass the number of the affected local LPT port, from LPT:1 to LPT:3. Although OS/2 supports multiple LPT ports from LPT:1 to LPT:9, the NWSpoolStarCapture() will only support LPT:1 to LPT:3. Any higher number will cause an error.
SOLUTION N/A
FYI: Network Semaphores and NLMs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network Semaphores and NLMs
DOCUMENT ID#: FYI.A.3121
DATE: 19AUG91
PRODUCT: Network C for NLMs
PRODUCT VERSION: All Versions
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The WaitOnSemaphore() API in the NLM environment temporarily disables the current connection number on which it is issued. This can pose a problem if the NLM thread group has set its current connection to that of a client before making the call. If this happens, the client will be blocked out from getting file service requests until the unblock (i.e. WaitOnSemaphore returns) occurs. If the delay is substantial, the client will encounter the "Error sending/receiving on network" critical error.
SOLUTION
Have an NLM allocate connection numbers of its own for doing any network semaphore activity. In fact, a different connection should be used for each thread group that uses network semaphores. Be cautious of using connection zero for network semaphores. If a semaphore blocks, all other NLMs in the system are preventing from doing any type of API that requires an enabled connection number.
FYI: Debug Server out of file handles error message
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Debug Server out of file handles error message
DOCUMENT ID#: FYI.A.3120
DATE: 19AUG91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK(a)
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
If you receive the error message "Debug Server out of file handles" on the 3.x System Console while debugging using either NOVSERV or PARSERV, this means that too many NLMs were autoloaded by the NLM you are debugging.
SOLUTION
Load some of the NLMs you are autoloading from the console prompt, then load your NLM for debugging.
FYI: Setting the search mode attributes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Setting the search mode attributes
DOCUMENT ID#: FYI.A.3119
DATE: 19AUG91
PRODUCT: NetWare C Interface - DOS
PRODUCT VERSION: v1.2
SUPERSEDES: 21-Jun-91 by David Harris
SYMPTOM: N/A
ISSUE/PROBLEM
The Search Mode attributes for a file are stored in bit positions 0,1 and 2 of the file's extended attributes field. That's the same field that the transactional, indexed and read/write audit bits are stored. In a previous FYI, it was mentioned setting these bits for an AFP file, but none of our documentation seems to mention these bit positions. I did not find it in any of the C Interface DOS Manuals, and it is probably missing from both the Windows and OS/2 documentation.
SOLUTION N/A
FYI: Debug Symbol Information for NLMs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Debug Symbol Information for NLMs
DOCUMENT ID#: FYI.A.3118
DATE: 19AUG91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK(a)
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
If you load your NLM under NOVSERV or PARSERV, and it in turn autoloads other NLMs, symbol information for all autoloaded NLMs will be included for the debugging session. Of course, this is only true of NLMs linked with WLINK, and containing a DEBUG ALL directive in the link file.
SOLUTION N/A
FYI: DOS 4.01 Bug Shows up with Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DOS 4.01 Bug Shows up with Btrieve
DOCUMENT ID#: FYI.A.2016
DATE: 19AUG91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: All
SUPERSEDES: N/A
SYMPTOM: When using Btrieve with DOS 4.01, a couple of customers have run into a bug with DOS. The symptoms of the bug will be consistent status 2's when a file's size is within 512 bytes of a 32 meg boundary when a Btrieve file is trying to be expanded. The bug can also appear with BUTIL -Load, which in this case, no status 2 is returned, but the file size will just stop growing at (approximately) a multiple of 32 meg. Here is a complete description of the bug:
ISSUE/PROBLEM
The conditions to cause the bug to appear:
The bug will appear only when dealing with files larger than 32 megabytes. This means that a partition larger than 32 megabytes must exits.
On the FAT file system, files are written out in "clusters" of sectors. Sectors are 512 bytes in size, and the number of sectors in a cluster is dependent on the partition size. A standard 60 megabyte hard drive partitioned into one 60 megabyte partition has 4 sectors per cluster.
When writing a large (32 megabytes +) file, the bug will appear at the time that the write crosses the 32 megabyte (file size) boundary. (This has nothing to do with the partition size, other than it must be larger than 32 megabytes).
To make the bug appear, the write before the one that crosses the 32 megabyte boundary must enter the last sector in the cluster before the 32 megabyte boundary. In the above case (4 sectors per cluster), this means that if the write before the crossing of the 32 megabyte boundary ends in the #1, #2, or #3 sector in the cluster, the bug will not show. However, if the write ends up in the #4 sector in the cluster (32 megabytes - 1 byte to 32 megabytes - 512 bytes), the bug will appear.
What the bug does
The bug involves the file size. If the above circumstances occur, the file is written out to the disk correctly. However, the file size variable is not updated to reflect the actual size. Therefore, if you have a file that is larger than 32 megabytes, the file size when you do a "DIR" at the command line will not show the file's correct size.
So far, the data has not been corrupted. Now, when data is added to the end of the file (appended), the file size is not updated again. Since most programs use the file size to find the end of the file, when they "append" data to the end, they are actually over-writing the previous data that was beyond the 32 megabyte boundary. This is where the data corruption occurs. Since the file size is not updated correctly when appending, corruption will occur whenever the file is appended to.
SOLUTION
Fixes for the bug
Microsoft does have a patch for this bug. The patch program provided by Microsoft will patch the binary MSDOS.SYS or IBMDOS.COM file by changing the code and adding no-ops to the code where needed.
The patch can be obtained by contacting the reseller from which the customer's DOS was purchased, or from Microsoft at their 900 number.
FYI: Btrieve 4.11 and Search Drives
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 4.11 and Search Drives
DOCUMENT ID#: FYI.A.1833
DATE: 17AUG91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 4.11
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Btrieve for DOS version 4.11 *will* use a search drive to find files it is trying to open. Using a search drive with version 5.x will not be valid. It is not valid because of the inconsistencies which can arise in pre-imaging if a search drive is used. People that have depended on the search drive will no longer be able to find their files when they upgrade their Btrieve.
SOLUTION N/A
FYI: Inserting Binary Data from XQL Manager
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Inserting Binary Data from XQL Manager
DOCUMENT ID#: FYI.A.1832
DATE: 17AUG91
PRODUCT: XQL for DOS
PRODUCT VERSION: 2.11
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
From the manager lever of NWSQL and XQL it is not possible to insert binary data into a string field. Let's say for instance that you want to place a HEX 12 and HEX 13 into a character string with an INSERT statement. In C you would write:
char sstatement[100];
char buffer[13];
buffer[0] = 0x12;
buffer[1] = 0x13;
buffer[2] = 0x00;
sprintf(sstatement, "insert into table (f1) VALUES ('%s')",buffer);
status = XQLCompile(cursor, strlen(sstatement), sstatement);
Here you have inserted binary data into the field, f1. When the insert takes place it will be inserted as a space. XQL will convert all non-printable characters to a space.
SOLUTION N/A
FYI: NDSPX.ZIP
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NDSPX.ZIP
DOCUMENT ID#: FYI.P.9475
DATE: 16AUG91
PRODUCT: NetWare
PRODUCT VERSION: v2.2 v2.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Increasing SPX connections on a Nondedicated Server's DOS process above 15.
SOLUTION
Apply NDSPX.ZIP available on NetWire.
CHGSPX.EXE:
This is a menu driven utility and contains instructions on how the program works. This program will configure the .obj files for ADV NetWare V2.15C and V2.2 so that the DOS process on a non dedicated file server versions 2.15C and 2.2(5,10,50,100) will support more than 15 SPX CONNECTIONS. Since it is menu driven, executing chgspx.exe will not effect the system until the user specifies the modifications to be made. This patch may be used on the 5, 10, 50, and 100 user versions of NetWare 286 V2.2.
SPXCOUNT.EXE:
This is a utility that determines the number of SPX connections that a workstation is configured for.
FYI: C Interface and AFP: renaming the short name
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: C Interface and AFP: renaming the short name
DOCUMENT ID#: FYI.A.2628
DATE: 16AUG91
PRODUCT: C Interface
PRODUCT VERSION: 1.2x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
In trying to rename only the short name (DOS name) of an AFP file (MAC created file) the following code path may be used. Note that trying the normal 'rename' function does not work on MAC files. The function destroys the original MAC description of the file, and it will no longer look like a file created by the MAC API's.
1) AFPScanFileInformation - get information on the file, including the long and short names.
2) AFPDirectoryEntry - if it returns NON-NULL then it was a file created by the MAC (AFPCreateFile).
3) ScanFileEntry - to obtain the sequence number for the file (file server index number for the file).
4) SetEntry - using the sequence number from ScanFileEntry, set the modification bits to M_MODIFY_NAME, copy the new name, and set the new name length, then call the function. This preserves the MAC File description and it remains tagged as a MAC created file.
SOLUTION N/A
FYI: Xtrieve PLUS v4.10 Report Option
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve PLUS v4.10 Report Option
DOCUMENT ID: FYI.A.1114
DATE: 16AUG91
PRODUCT: Xtrieve PLUS for DOS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With Xtrieve PLUS v4.01a, there was a file called XREPORT.OVL which was used for Report Option functionality. This file is no longer distributed with the 4.10 release, since all of the RO functionality is encompassed in the XTRIEVE.EXE file.
SOLUTION
NA
FYI: Server Attachments and the 2.15c Shell
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server Attachments and the 2.15c Shell
DOCUMENT ID#: FYI.A.3334
DATE: 15AUG91
PRODUCT: NetWare Shell
PRODUCT VERSION: 2.15c
SUPERSEDES: N/A
SYMPTOM: Workstation loses connection to all previously attached servers.
ISSUE/PROBLEM
The 2.15c NetWare shell does not always reattach itself to the primary server. If you login to a different server than the server found by the shells nearest server query and then LogoutFromFileServer the shell FileServer tables are cleared.
SOLUTION
Use a different new shell, such as 3.01d.
FYI: Disabled Logins
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Disabled Logins
DOCUMENT ID#: FYI.A.3333
DATE: 15AUG91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
How can you tell if logins have been disabled when issuing the LoginToFileServer API?
SOLUTION
The LoginToFileServer function returns a 254 (Bindery Locked) when logins have been disabled.
FYI: DOS 5.00 and TBMI/TASKID
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DOS 5.00 and TBMI/TASKID
DOCUMENT ID#: FYI.A.3332
DATE: 15AUG91
PRODUCT: TBMI
PRODUCT VERSION: N/A
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
When should TBMI2 be used with MS DOS 5.00?
Do I ever need to use TBMI/TASKID with MS DOS 5.00?
SOLUTION
TBMI2 needs to be loaded when running IPX/SPX based applications in the MS DOS Task Swapper. There is not an associated TASKID with TBMI2.
The original TBMI/TASKID still needs to be loaded when running Windows applications that use IPX/SPX. TBMI2 can not be loaded with TBMI. This should not prove to be a problem for developers since MS does not recommend running the Task Swapper and Windows concurrently.
FYI: ScanFileInformation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanFileInformation
DOCUMENT ID#: FYI.A.3331
DATE: 15AUG91
PRODUCT: NetWare C Interface DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: The ScanFileInformation function returns information for files where the user does not have rights on a 3.11 file server.
ISSUE/PROBLEM
The ScanFileInformation function will return information for files that the user does not have access to when it is called in the following sequence:
1. ScanFileInformation (Volume SYS:) No Rights
No Files Found
2. ScanDirectoryInformation (Volume SYS:) No Rights
No Directories Found
3. ScanFileInformation (Volume VOL1:) R F Rights
File Found
4. ScanDirectoryInformation (Volume VOL1:) R F Rights
Directory Found
5. ScanFileInformation (Volume SYS:) No Rights
File Found - Even though the user has no rights
SOLUTION
This has been reported as a bug.
FYI: Using SADD & SSEG with Btrieve FAR calls in MS BASIC 7.X
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Using SADD & SSEG with Btrieve FAR calls in MS BASIC 7.X
DOCUMENT ID#: FYI.A.2104
DATE: 15AUG91
PRODUCT: Btrieve for DOS, NetWare Btrieve VAP, NetWare Btrieve NLM
PRODUCT VERSION: All Versions
SUPERSEDES: N/A
SYMPTOM: Status 0 returned on GET operations with nothing returned in the data buffer
ISSUE/PROBLEM
When programming with MS BASIC 7.X using FIELD statements to initialize your buffer area for subsequent Btrieve calls, the BC7RBTRV.OBJ interface requires you to split the data buffer parameter into two parts using SADD and SSEG as shown in the following syntax:
This is a correct procedure for making a Btrieve call, however, if the programmer goes on and calls other subroutines etc. and then comes back and makes subsequent Btrieve calls without reinitializing those address pointers with SADD and SSEG, those pointers may be pointing to some other place in memory thus causing Btrieve to return a successful status code but nothing gets returned in the data buffer area. This is because MS BASIC will move strings around in memory whenever it deems necessary.
SOLUTION
To prevent this kind of problem from happening, always include the SADD and SSEG statements within the Btrieve call, so that the address pointers to the data buffer area are always reinitialized at the time the Btrieve call is made.
FYI: Btrieve 5.10a and NCOPY
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 5.10a and NCOPY
DOCUMENT ID#: FYI.A.3405
DATE: 14AUG91
PRODUCT: Btrieve/NCOPY
PRODUCT VERSION: 4.10/2.2,3.10
SUPERSEDES: N/A
SYMPTOM: Btrieve file grows to 65k after an NCOPY
ISSUE/PROBLEM
Under the following conditions:
1. If you have a Btrieve that was created specifying pre-allocation.
2. The last 1K remained 00's.
3. You used NCOPY to make a duplicate.
4. The file was .5 Meg or larger.
The file would grow by exactly 65k causing probable status 2's when used.
SOLUTION
Problem fixed in v3.11 NCOPY, or you may use v2.15.
Note that v3.11 is quite a bit larger in size and there may be a shortage of memory if you shell-out of an application in order to perform an NCOPY.
FYI: DOS 5.0 and IBM PC LAN
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DOS 5.0 and IBM PC LAN
DOCUMENT ID#: FYI.A.3404
DATE: 14AUG91
PRODUCT: Btrieve for DOS used with IBM PC LAN
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: Work Station hangs on wait lock, status 84 on updates.
ISSUE/PROBLEM
Customers using PC LAN ver 1.xx upgraded to DOS 5.0. At that time they received patches to version 1.34. Once this was installed a work station would hang whenever a Btrieve get w/lock was issued. If a lock was not issued, the record would be returned fine but a status 84 was received if they attempted to up date that same record.
SOLUTION
IBM has patched their REDIR50.exe program.
FYI: AFP and Search Mode Bits
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: AFP and Search Mode Bits
DOCUMENT ID#: FYI.A.1626
DATE: 13AUG91
PRODUCT: C Interface - DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
AFPScanFileInformation and AFPGetFileInformation do not return the search mode bits in the attribute field.
SOLUTION
Use GetExtendedFileAttributes to obtain the correct extended attributes (including the search mode bits) and then use the AFPSetFileInformation call to set these attributes.
FYI: Btrieve for MS-Windows BETA
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve for MS-Windows BETA
DOCUMENT ID#: FYI.A.1622
DATE: 13AUG91
PRODUCT: Btrieve for MS-Windows
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
If EXEHDR (supplied with MS C v6.0) is executed on the WBTRCALL.DLL from the RELEASED version of Btrieve for MS-Windows, the description field reports "Btrieve V5.11 DLL for MS-Windows Beta Version." This is NOT a BETA version; it's the real stuff.
SOLUTION N/A
FYI: BSPXSTUB.NLM - Why use it?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BSPXSTUB.NLM - Why use it?
DOCUMENT ID#: FYI.A.1109
DATE: 13AUG91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.10+
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Bspxstub is an NLM which is used by the Bconsole NLM, when Bspxcom is not loaded at the file server. Bspxcom normally provides SPX packet information to the Bconsole NLM. In the event that Bspxcom is not loaded, Bspxstub is used to obtain SPX packet information from Brouter. So, if Bspxcom is not loaded, and you want to use Bconsole to monitor file server resources, you must have both Bspxstub and Brouter loaded.
* res - resources from the Btrieve NLM, such as open files, locks, etc.* spx - SPX packet information being transmitted to/from the file server.
BSPXSTUB.NLM is required by BCONSOLE.NLM if BSPXCOM.NLM is not loaded, because it resolves external references for BCONSOLE.NLM which would normally be resolved by BSPXCOM.NLM.
Why wouldn't BSPXCOM be loaded at the file server all of the time?
One reason for not loading Bspxcom would be that no clients (workstations) are making requests to the Btrieve NLM at the file server. Only other NLM's which are running at the file server are making Btrieve calls.
One such issue that has been brought up by NetWare SQL developers in the past, has been the fact that if security is installed at the NetWare SQL level, then users (clients) can still access the database files through Btrieve requests (unless an owner name has been assigned to the Btrieve files). To restrict clients from making requests directly to Btrieve, thus getting around NetWare SQL's established security mechanisms, one could load the Btrieve and NetWare SQL NLM's without Bspxcom NLM.
BSPXSTUB.NLM is not described in any documentation that we distribute, except for a little tidbit in the README.DOC which went out with NetWare Btrieve v5.15 for NetWare 3.11. This information should be added to the NetWare Btrieve NLM Installation and Operations Manual.
SOLUTION N/A
FYI: Printing Reports with a Large Form Width
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Printing Reports with a Large Form Width
DOCUMENT ID: FYI.A.3010
DATE: 12AUG91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Printout from reports with form width larger than 80 characters might appear to be garbled.
ISSUE/PROBLEM
If you try to print a report to a file and set the Form Width (from Report, Dimensions menu) to a larger number than the default value, the report might not show up the way you expect it to. The last few words of each line might be printed vertically. There are two ways you can avoid this problem. Either use the print option to configure Xtrieve, or set the printer switch to NO.
SOLUTION
You can use one of the following methods to avoid this problem:
I) Configure Xtrieve for your printer
1) Go to Configure - Print
2) Select Database from the menu; and specify XTRIEVE.PDB (or
complete path + XTRIEVE.PDB)
3) Select Printer and choose the desired printer
4) Select Device and choose "LETTER" or any other format that
you like (refer to Xtrieve manual, page 10-8)
5) Go back to the Report menu
6) Select Attribute, and choose Compress
7) Print your report
II) Disable Printer
1) Go to Configure - Switches
2) Select Printer, and set it to NO.
FYI: Changing the Btrieve 7B interrupt
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Changing the Btrieve 7B interrupt
DOCUMENT ID#: FYI.A.1017
DATE: 12AUG91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 4.11x, 5.00x, & 5.10x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
When attempting to change the 7b interrupt used by Btrieve you will discover more than one occurrence of it. The question is, which of the 7b interrupts should you change and which should you leave alone.
It will also be necessary to change the "interrupt check" in the language interface your code is using. If you are using Turbo Pascal, Turbo BASIC, LogiTec Modula-2/86, MS-C, MS IBM-c for OS/2, Turbo C, Watcom C, Lattice C, Mark Williams C, DeSmet C, or either of our assembly interfaces for COBOL or Fortran, you may make the change to the source code provided. If you use a language for which the interface is an .OBJ file, it will be necessary to make the patch with debug, following the debug procedures described above and search for 7b 35 and cd 7b. Change the 7b in both cases to what ever your new interrupt was changed to for your Btrieve executable.
It will also be necessary to change the interrupt on BUTIL.EXE.
SOLUTION N/A
FYI: Bconsole file lock info meaning
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Bconsole file lock info meaning
DOCUMENT ID#: FYI.A.1016
DATE: 12AUG91
PRODUCT: BCONSOLE.NLM & BCONSOLE.EXE
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
After entering Bconsole you may select 'User List' from the main menu. It will then display all active users with:
░╔═════════════════════════════════════════════╗░
░║ C.ID User Network Node Address ║░
░╠═════════════════════════════════════════════╣░
░║ │ 2 SUPERVISOR ABBBDDDD : 00001B03635F ║░
░╚═════════════════════════════════════════════╝░
Select the user your interested in by positioning your cursor on the Username and pressing enter. Bconsole will then display the user file list with:
Under Locks you may see either a 0, 1(A), or 1(M). If you see a 0 there are no locks in effect for that file by that user. If you see x(A) under Locks there are x number of Single Wait/NoWait Locks in effect for that file by that user. If you see x(M) under Locks there are x number of Multiple Wait/NoWait Locks in effect for that file by that user.
SOLUTION N/A
FYI: Btrieve Performance & Page Size
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Performance & Page Size
DOCUMENT ID#: FYI.A.1018
DATE: 09AUG91
PRODUCT: Btrieve
PRODUCT VERSION: All versions
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Page sizes for Btrieve files which are either 512 or even multiples of 1K (1024, 2048, 4096) result in higher performance because they correspond to disk blocks sizes. When using other valid page sizes (1536, 2560, 3072, or 3584), reads do not fall on even boundaries and so a given read could span two blocks and require two "disk accesses". This is purely a performance consideration.
SOLUTION N/A
FYI: Brequest retry loop & documentation error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Brequest retry loop & documentation error
DOCUMENT ID#: FYI.A.1015
DATE: 09AUG91
PRODUCT: BREQUEST.EXE
PRODUCT VERSION: v5.xx
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
A customer recently pointed out to me that in our documentation for Btrieve there is a statement that:
"Figure 3.2 illustrates how Application 1 using wait transaction control can interact with Application 2 using the passive method of concurrency. When Application 1 reads a file within a transaction, Application 2 can still read the file outside of a transaction, but its update waits until the transaction ends."
This is NOT true! When Application 2 attempts the update it will receive a Status 85, "File in use" error. Btrieve returns control to the calling program for it to decide what to do at that point. If, however, Application 2 had started its own wait transaction before issuing the update, it would wait for Application 1 to end or abort it's transaction and then try to complete the update.
According to development this is the only scenario in which Brequest will not return control to the calling application. It will sit in this retry loop indefinitely. This is why we recommend to our developers that they spend as little time as possible in a transaction.
This has been submitted as a documentation bug. It can be found on page 3-15 of the Btrieve Programmer's Manual April '90 edition. You may want to make note of this in your manual for future reference.
SOLUTION N/A
FYI: LU Local Addresses and Session
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LU Local Addresses and Session
DOCUMENT ID#: FYI.A.2820
DATE: 08AUG91
PRODUCT: NetWare LU6.2 tools
PRODUCT VERSION: 1.0
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The LU local addresses range from 02 hex to a max of FE. If the specific LU characteristics are required for the Host session, the LU addresses defined to the host and the LU addresses configured in the gateway server customization program (Local Address Type Definition panels and Local Address Pool Definition panels must match). These parameters are all defined in the VTAM as "MODETAB=" and "DLOGMOD=". A printer is defined as an LU Type 1 or 3, and a display device is an LU Type 2 in a 3270 environment. In a 5250 environment, a printer is LU Type 7 and a display device is LU Type 4.
SOLUTION N/A
FYI: Setting up your PC while installing SNA Gateway
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Setting up your PC while installing SNA Gateway
DOCUMENT ID#: FYI.A.2819
DATE: 08AUG91
PRODUCT: NetWare
PRODUCT VERSION: SNA/Gateway
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
You may need to add or modify certain options in your CONFIG.SYS and SHELL.CFG files as part of the gateway installation process. The FILES option in CONFIG.SYS should be set to 20 to avoid receiving a "File Not Found" error message when using the gateway. In addition, you also need to add STACKS=64,256 to your CONFIG.SYS file. In SHELL.CFG, set the SPX Connections = n to the maximum number of physical workstations using the gateway server plus three. The default is 15 connections. If you have more than 40 workstations accessing the gateway simultaneously, specify SPX Abort Timeout=2000.
SOLUTION N/A
FYI: Versions and Previous Names in 3270 Lan Workstation and
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Versions and Previous Names in 3270 Lan Workstation and
DOCUMENT ID#: FYI.A.2818
DATE: 08AUG91
PRODUCT: NetWare 3270 Lan Workstation and SNA/Gateway
PRODUCT VERSION: N/A
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
In order to keep track of the current names and versions of the SNA Gateway and LAN Workstation for DOS software, I have listed the following for reference:
WSCUT : PCOX/One Coax, v1.1
WSMULTI : PCOX/Two, PCOX/Multi, v1.1
WSLAN : PCOX/One,Two,Multi, v1.1, 1.2, 2.0
NetWare SNA Gateway : PCOX/GW-3270 (Coax, Coax-Mux, SDLC, Remote-Assist,
Token-Ring, IRMA versions) 1.3, 1.3.G
NetWare SNA Gateway ELS : PCOX/GW-3270 (Coax, SDLC, IRMA versions), 1.2
The above versions start from oldest to newest. The newer versions can be found in data library #9 or 16 on Compuserve.
SOLUTION N/A
FYI: Problem With Find Field Length API in HLLAPI v2.2.f.3
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem With Find Field Length API in HLLAPI v2.2.f.3
DOCUMENT ID#: FYI.A.2817
DATE: 08AUG91
PRODUCT: NetWare 3270 toolkit
PRODUCT VERSION: 1.5
SUPERSEDES: N/A
SYMPTOM: Find Field Length does return the right length.
ISSUE/PROBLEM
Function-32 (Find Field Length) does not return the right length when you try to find the length of the line #24 which is right above the OIA (Operator Information Area). It always returns a zero length.
SOLUTION
It has just been fixed by Sunnyvale Engineering and the new HLLAPI.EXEv2.2.f.9 is out. So the customers who are having problems with this function can get the new HLLAPI.EXE.
FYI: GWSTATUS Utility
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GWSTATUS Utility
DOCUMENT ID#: FYI.A.2816
DATE: 08AUG91
PRODUCT: NETWARE SNA/Gateway
PRODUCT VERSION: 1.3.G
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The GWSTATUS utility is designed to provide the important status information on the operation of the SNA Gateway and all 3270 Lan Workstations connected to the gateway. This GWSTATUS utility allows network administrators access real-time information like getting the Statistical information on each gateway and Lan workstation on the network and Host/LAN network errors, connection status, Gateway usage and availability etc. When you run the GWSTATUS utility and if you get the error saying "The overlay file IBM$RUN.OVL is wrong version for this utility" you might want to check the following few things.
SOLUTION
DIAGMENU utility cannot reside in the same directory because both utilities use a file named IBM$RUN.OVL. IBM$RUN.OVL dated 11/1/88 is used by DIAGMENU utility where as IBM$RUN.OVL date 11/1/89 is used by GWSTATUS. If you try to load having both utilities in the same directory it will give you an error saying "The overlay file IBM$RUN.OVL is wrong version for this utility".
FYI: Btrieve Extended Operations with Visual Basic 1.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Extended Operations with Visual Basic 1.0
DOCUMENT ID#: FYI.A.2103
DATE: 08AUG91
PRODUCT: Btrieve (All Platforms)
PRODUCT VERSION: 5.10
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Microsoft Visual Basic 1.0 does not allow the programmer to define an array within a User-Defined Type (structures defined with TYPE and END TYPE statements). This can cause a lot of problems when using Extended Operations that use more than one logic expression or when returning more than a couple of records.
SOLUTION
At this time the only solution is to make a structure for each logic expression and when retrieving more than one record, parse the string buffer one record at a time making the appropriate data conversions. This is supposed to be fixed in the next release of Visual Basic.
FYI: C-Worthy 1.2 corrupts shell
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: C-Worthy 1.2 corrupts shell
DOCUMENT ID#: FYI.A.3814
DATE: 07AUG91
PRODUCT: C-Worthy
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
One of my customers wrote a client installation program for installing his NLM on the server. However, in some Arcnet topologies, the client was disconnected from the server half way through the installation program. The customer was using the C-Worthy libraries version 1.2 in his program with some of our NetWare C Interface for DOS APIs. The shell version was 3.01B.
SOLUTION
C-Worthy libraries 1.2 corrupt the NetWare shell. The version of shell does not matter. The problem was reported for shell versions ranging from 2.15a to 3.02e. The version 1.21 of CWorthy libraries is the maintenance release, and it corrects the problem.
FYI: BSPXSTUB.NLM : What is it?
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BSPXSTUB.NLM : What is it?
DOCUMENT ID#: FYI.A.2334
DATE: 07AUG91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
BSPXSTUB.NLM is a security device for people who only want their files to be accessed through NetWare SQL (or another NLM). Bspxstub does not make the SPX connections necessary for Brequest to access Btrieve files.
There is no equivalent for the Btrieve VAP.
Instead of loading BSPXCOM.NLM, do the following:
load btrieve <parms>
load brouter
load bspxstub
A side note: running BCONSOLE.NLM v5.15 while Bspxstub is loaded will ABEND THE SERVER! This is not patchable, but will be source-fixed.
SOLUTION N/A
FYI: Loading the SLATE Utility on Different Monitors
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading the SLATE Utility on Different Monitors
DOCUMENT ID: FYI.A.1112
DATE: 07AUG91
PRODUCT: Xtrieve PLUS, SLATE Utility
PRODUCT VERSION: 4.10, 2.1.2
SUPERSEDES: NA
SYMPTOM: SLATE.EXE hangs the workstation as soon as it's loaded.
ISSUE/PROBLEM
SLATE.EXE, a printing configuration program shipping with Xtrieve PLUS v4.10, might temporarily hang your workstation if you don't use the -Vn switch on the command line. The logon banner will display, but the Screen will not be displayed properly or at all. Use the Ctrl C or Ctrl Break keys to exit.
SOLUTION
Try running the program again, adding the parameter -Vn, where n is one of the following numbers:
n ADAPTER & DISPLAY
0 Automatic Configuration
1 MDA & Monochrome Display
2 CGA & Color Display
3 CGA & Monochrome Display
4 EGA & Color Display
5 EGA & Monochrome Display
6 Hercules & Monochrome Display
7 VGA & Analog Monochrome Display
8 VGA & Analog Color Display
9 Hercules Plus & Monochrome Display
10 MCGA & EGA Color Display
11 MCGA & Analog Monochrome Display
12 MCGA & Analog Color Display
13 Hercules InColor & Monochrome Display
14 Hercules InColor & Color Display
FYI: Mountain Hard Drives & Btrieve 7b Interrupt
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Mountain Hard Drives & Btrieve 7b Interrupt
DOCUMENT ID#: FYI.A.1014
DATE: 06AUG91
PRODUCT: Btrieve for DOS, Brequest
PRODUCT VERSION: any
SUPERSEDES: N/A
SYMPTOM: System seems to hang on first call to Btrieve.
ISSUE/PROBLEM
Btrieve uses DOS interrupt 7b; other devices (drivers, TSRs, etc.) may also be set up to use this DOS interrupt. An example of this type of interrupt conflict is between Btrieve and an Ompti controller model 5510 or 5520. These use a custom bios written by Mountain Inc. (which is now called Ocean Bearing Incorporated). This controller is for a rather old 70 Megabyte hard disk which went out of production almost a year ago now. However, a few are still shipping from old inventory, according to the folks at Ocean Bearing.
SOLUTION
You can change the 7b interrupt on Btrieve to allow the two to co-exist without this conflict occurring. Refer to a previous FYI - "Changing the Btrieve 7b Interrupt" from 8/12/91 for more information. It should also be possible to change the interrupt on the controller but, Ocean Bearing did not want to tell us how to do it.
FYI: Server Abends
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server Abends
DOCUMENT ID#: FYI.A.3813
DATE: 05AUG91
PRODUCT: NetWare
PRODUCT VERSION: 3.10
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Server abends with the message "ClearPhantom called with not primary directory number."
SOLUTION
Apply the patch "DELDRFX". This patch is available on NetWire.
FYI: Recalling a Report after Recalling a View
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Recalling a Report after Recalling a View
DOCUMENT ID: FYI.A.3009
DATE: 05AUG91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Recalling a report immediately after recalling a view might fail.
ISSUE/PROBLEM
Recalling a report after recalling a view will fail in the following scenario: Create and store a view with field names that contain blanks such as "My Field". Then create and store a report for that view. Now, if you recall the view and then the report, you will get the error message "filename.1.fieldname " is not in view' and the report will not be recalled.
When you create a view with field names that contain blanks, the blanks are replaced with the character ^. If you then create and store a report for this view, the report will be stored with field names that contain ^. However, if you then go back and store the view, the ^ characters are replaced with blanks in the stored definition. Subsequently, if you recall this view and then try and recall the report, you will get an error since the field names in the report don't match the field names in the view.
SOLUTION
In order to avoid this problem, you need to create the view, store it,recall it and then create your report.
FYI: Problem with the HLLAPI Function-9
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with the HLLAPI Function-9
DOCUMENT ID#: FYI.A.2815
DATE: 05AUG91
PRODUCT: NetWare 3270 tools
PRODUCT VERSION: 1.5
SUPERSEDES: N/A
SYMPTOM: SNA Host session locks up.
ISSUE/PROBLEM
In NetWare 3270 HLLAPI the function-9 has a bug in it. When the default ESC=x value in Function-9 (Set Session Parms) is changed from one character to two characters the host session locks up or returns an error message if the Command Processor is used. This function is suppose to work for the two characters also because our function supports IBM's Function-9 (Set Session Parms) and the IBM's function let you set ESC=xx two characters.
SOLUTION
It is submitted as a BUG with Sunnyvale Engineering. This is not a high priority BUG.
FYI: IPXGetInternetworkAddress problem - C Interface for Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPXGetInternetworkAddress problem - C Interface for Windows
DOCUMENT ID#: FYI.A.2625
DATE: 05AUG91
PRODUCT: C Interface for Windows
PRODUCT VERSION: 1.2x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The IPXGetInternetworkAddress returns garbage in the Network Address field following the initialization of IPX with 0 ECB's.
SOLUTION
At this point, doing this call requires IPXInitialize to be called with a non-zero ECB count. A work around may be to use GetInternetAddress with the connection number of the workstation.
FYI: BCONSOLE (EXE or NLM) userlist
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BCONSOLE (EXE or NLM) userlist
DOCUMENT ID#: FYI.A.2333
DATE: 05AUG91
PRODUCT: BCONSOLE (NLM & EXE)
PRODUCT VERSION: v5.15 and below
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
In BCONSOLE (EXE or NLM), userlist shows the following:
for each process using the Windows requester. This is because Bconsole was developed for DOS, which allows only one connection per workstation. Windows allows more than one, so some features of Bconsole were disabled. As a result, all Windows requester users will look exactly the same when viewed under Bconsole.
SOLUTION N/A
FYI: Btrieve VAP Installation Password
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve VAP Installation Password
DOCUMENT ID#: FYI.A.2332
DATE: 05AUG91
PRODUCT: NetWare Btrieve VAP
PRODUCT VERSION: 5.15 and below
SUPERSEDES: FYI.A.1718
SYMPTOM: Btrieve VAP loads regardless of what password is typed for the password prompt.
ISSUE/PROBLEM
The password that Bsetup prompts for when installing the Btrieve VAP is purely for use with NetWare, rather than to check for installation rights. Every time the VAP is installed, a different password can be typed in.
A password is requested because the installation will create a new user to NetWare (the user is Btrieve), and the password will be used when Btrieve logs in to NetWare (the VAPs are loaded).
SOLUTION N/A
FYI: Status 20 on close after reset
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 20 on close after reset
DOCUMENT ID#: FYI.A.2331
DATE: 05AUG91
PRODUCT: Btrieve (all platforms)
PRODUCT VERSION: v5.15 & below
SUPERSEDES: FYI.A.2302
SYMPTOM: Status 20 on a close operation.
ISSUE/PROBLEM
A close after a reset is an invalid sequence of operations, so the fact that an invalid status was returned (20, when Btrieve was still loaded) is not considered a Btrieve bug.
SOLUTION N/A
FYI: Extended Operation Descriptor Length
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Extended Operation Descriptor Length
DOCUMENT ID#: FYI.A.2330
DATE: 05AUG91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10 and above
SUPERSEDES: N/A
SYMPTOM: Status 62 (incorrect descriptor) on extended operations (get/step next/previous, op codes 36 through 39).
ISSUE/PROBLEM
The descriptor length (the first 2 bytes of the data buffer) on the extended operation call must be the EXACT length of the descriptor. This is unusual in Btrieve terms, because in most cases, a length greater than actual is OK, and extra bytes are ignored. This requirement does not apply to the data buffer length parameter, which can still be declared longer than necessary.
SOLUTION N/A
FYI: Redirection in WMAKE
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Redirection in WMAKE
DOCUMENT ID#: FYI.A.3812
DATE: 01AUG91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK(a)
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
In WMAKE (Watcom's Make utility), if redirection of compile errors is done to a file, WMAKE's ERROR directive is not executed.
SOLUTION
The redirection is done through COMMAND.COM which does not return any errorcodes. Therefore, even though the compiler returns error codes, no error codes are sent to WMAKE because of the redirection, and hence the ERROR directive never gets executed.
FYI: The tzset() API in CLib v3.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The tzset() API in CLib v3.x
DOCUMENT ID#: FYI.A.3117
DATE: 01AUG91
PRODUCT: NetWare C for NLMs
PRODUCT VERSION: SDK(a)
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The tzset() API in CLib v3.x is provided only for reasons of compatibility. In order to effectively use functions which give the time in GMT (Greenwich Mean Time), such as gmtime(), use the following steps:
1. Set the server's time zone using the SET TIMEZONE console command
2. Load the CLib NLM
3. Load your NLM.
It is important that you load CLib AFTER setting the server's time zone, because it is during initialization that the time zone is parsed by CLib.
SOLUTION N/A
FYI: Specifying a Path using XTRPATH Environment Variable
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Specifying a Path using XTRPATH Environment Variable
DOCUMENT ID: FYI.A.3008
DATE: 01AUG91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Status 11 when opening file if file path is not specified properly.
ISSUE/PROBLEM
Here is some information on how to take advantage of the environment variable XTRPATH. As you know, XTRPATH specifies the directory where your database resides. You need to make sure that the file location specified in the DDF is in sync with the path specified in XTRPATH. If the DDF contains a drive letter or starts with a back slash, the XTRPATH is totally ignored. Also, because of the way xDDPath (the XQL function called when XTRPATH is set) works, you need to specify the complete path in XTRPATH, and only put the file name in the DDF file. For example, if the file MYFILE.BTR resides on \Test\Data, then set XTRPATH to \Test\Data and specify "MYFILE.BTR" for the location of the file in the DDF.
There are, however, exceptions. Depending on where you run Xtrieve, you can specify XTRPATH and file location differently. The following table shows various ways you can specify XTRPATH.
F:\ TEST\DATA\MYFILE.BTR works, only if you are in the
volume where the directory
TEST resides when you start
Xtrieve.
FYI: Extended Retrieval Reject Count
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Extended Retrieval Reject Count
DOCUMENT ID: FYI.A.1804
DATE: 01AUG91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Thu 23-May-91 10:02am Brenda Wallace Subject FYI - Btrieve Extended Retrieval Reject Count - Continued
Here's the latest in the continuing saga of the reject count for Btrieve Extended retrieval operations. 'Maximum' identifies the maximum value the reject count can be set to on an extended retrieval. 'System Defined' is what Btrieve will set the reject count to if 0 is specified by the programmer.
Maximum System Defined
-------- --------------
Btrieve for DOS 5.10a: 127 127 *
Btrieve for DOS 5.10a with Patch #81 65535 65535
Btrieve VAP v 5.10 1023 1023 *
Btrieve VAP v 5.15 65535 1023
Btrieve NLM v 5.11 4095 4095 *
Btrieve NLM v 5.15 65535 4095
(* represents what has changed since first FYI.A.1804 on this subject.)
FYI: Locking problems with NetWare Shells
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Locking problems with NetWare Shells
DOCUMENT ID#: FYI.A.1517
DATE: 01AUG91
PRODUCT: NetWare Shell
PRODUCT VERSION: 3.02, 3.10
SUPERSEDES: N/A
SYMPTOM: A read operation on a locked region of a file will wait until the region is unlocked.
ISSUE/PROBLEM
If an attempt is made to read a locked portion of a file, the read operation will wait until the region is unlocked. In previous versions of the shell, an appropriate return code was generated for the read operation and control was returned to the application. This is a known problem in the NetWare shells v3.02 and v3.10, the version that ships with DOS v5.0.
SOLUTION
If you are running a version of DOS prior to v5.0, use the v3.01e shell. If you are using DOS v5.0, you will need to wait for the a new shell to be released.
FYI: Begin Diagnostics bug
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Begin Diagnostics bug
DOCUMENT ID#: FYI.A.1516
DATE: 01AUG91
PRODUCT: C-Interface for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: BeginDiagnostics returns a status 255 (0xFE).
ISSUE/PROBLEM
The BeginDiagnostics calls will return a status 255 (0xFE) when issued against a server that has more than 4 network interface cards installed and configured. The problem is that the componentType field of the IPX reply packet is not large enough to hold all the data being returned.
SOLUTION
Increase the size of the componentType field in the IPX reply packet structure in DIAG.C. The componentType field is on line 32 of DIAG.C and has been set to a BYTE array of size 53, increase this value to 530.
FYI: Btrieve for DOS with Lan Manager v2.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve for DOS with Lan Manager v2.0
DOCUMENT ID#: FYI.A.1515
DATE: 01AUG91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.0x
SUPERSEDES: N/A
SYMPTOM: Status 12 when trying to open a file from multiple
workstations.
ISSUE/PROBLEM
If you use the latest version of Microsoft Lan Manager, v2.0, with Btrieve v5.00x, it is not possible to open the same file from two different workstations. The first open to the file will be successful, but any additional opens to the file will return a status 12.
SOLUTION
Upgrade to Btrieve v5.10x.
FYI: Btrieve Status 24 Documentation Omission
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status 24 Documentation Omission
DOCUMENT ID#: FYI.A.2409
DATE: 31JUL91
PRODUCT: "Btrieve Programmers Manual"
PRODUCT VERSION: April 1990 Edition
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The March 1989 edition of the "Btrieve Programmers Manual" has more information about the status 24 code than the April 1990 edition of the "Btrieve Programmers Manual". Specifically, the following helpful text is omitted from the April 1990 edition: "During a CREATE operation, the page size is the first file specification Btrieve checks, and a status of 24 may indicate an invalid data buffer".
SOLUTION
Edit the next edition of the "Btrieve Programmer's Manual".
FYI: INT86X & Family API Applications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: INT86X & Family API Applications
DOCUMENT ID#: FYI.A.2408
DATE: 31JUL91
PRODUCT: Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
INT86X is a C language function call to do DOS interrupts. This is how the C2FXBTRV.C interface (which ships with Btrieve for OS/2 version 5.10) uses DOS Btrieve. If you look at the interface, you will see something like:
if (runningOnOS2)
return (BTRCALL (op, ...));
else
{
/* set up for INT86X */
return (INT86X (®s, ®s);
The INT86X is linked in through the REAL mode libraries. A normal (i.e.non-family app) normally links in a protected mode library, SLIBCEP.LIB or LLIBCEP.LIB for whichever model is used when compiling. A family application must ALSO link in the REAL mode library SLIBCE.LIB or LLIBCE.LIB for example.
Linking in the REAL mode library resolves the external reference to INT86X().
After linking the application must be "bound" using BIND.EXE and specifying the BTRCALL entry point name in the list of DLL calls.
The dllList.bnd lists all the DLL function names referenced. For simple Btrieve apps this file would contain only the BTRCALL function name.
To use the above method, the application must specify in its .DEF file the BTRCALL function name in its IMPORTS section rather than linking in the import library:
IMPORTS
BTRCALLS.BTRCALL ; DLLname.functionname
SOLUTION N/A
FYI: Transaction Processing with Embedded SQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Transaction Processing with Embedded SQL
DOCUMENT ID#: FYI.A.1737
DATE: 31JUL91
PRODUCT: XQL/NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: N/A
SYMPTOM: Status 85 and 312 with Embedded SQL
ISSUE/PROBLEM
When using Embedded SQL, transaction processing is enabled by default. This means when you connect to a database you are starting a transaction. Every SQL statement executed after that will be part of that transaction until you execute either a COMMIT WORK or ROLLBACK WORK statement. When you execute either of these, the current transaction is closed, the data is written or rolled back, and a new transaction is automatically started.
If you do not put any COMMITs or ROLLBACKs in your application, every operation performed by your application will be in a single transaction, which will eventually end when you release your connection to the database by executing either EXEC SQL 'COMMIT WORK RELEASE' or EXEC SQL 'ROLLBACK WORK RELEASE'. This is likely to cause your application to return a Btrieve status 85 (File in Use) when run on multiple workstations, since two users cannot access the same file within a transaction. To avoid this, make sure you frequently execute COMMIT or ROLLBACK statements.
Alternatively, you can turn off the automatic transaction processing feature, and have your application control which statements will be performed within a transaction. To do this, have your program call the function "db_transaction_processing(0)" before connecting to the database. Calling this function with a false value turns off the automatic transaction processing. Now, at any place you wish to enable a transaction in your program, you can place the statement EXEC SQL EXECUTE IMMEDIATE 'START TRANSACTION'. At the point you wish to end or abort the transaction, you put either EXEC SQL EXECUTE IMMEDIATE 'COMMIT WORK' or EXEC SQL EXECUTE IMMEDIATE 'ROLLBACK WORK'. This gives you complete control over where transactions will be used in your application.
The reason EXECUTE IMMEDIATE is used rather than just EXECUTE is due to a bug in the pre-compiler which does not properly process an EXEC SQL EXECUTE 'START TRANSACTION' statement. You must remember that if you use the IMMEDIATE key word in the Start Transaction statement, you must also use it in the Commit or Rollback statement. If you use IMMEDIATE in your statement to start the transaction, but you don't use it when executing your Commit or Rollback statements, the Commit/Rollback will not be performed. Then, when you finally release your connection to the database, whether you specify a COMMIT WORK RELEASE or ROLLBACK WORK RELEASE, everything that was done since the transaction started will be rolled back and a status 312 (Transaction aborted) will be returned to your application.
SOLUTION N/A
FYI: Banyan Vines Network v4.02 & Btrieve for DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Banyan Vines Network v4.02 & Btrieve for DOS
DOCUMENT ID#: FYI.A.1013
DATE: 31JUL91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.1x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Btrieve for DOS v4.11x is not compatible with Banyan Vines network v4.02. Several erroneous Btrieve and non-Btrieve status codes may occur, such as 2, 3, 4, 9, 14, 15, and 18.
SOLUTION
Upgrade to Btrieve for DOS v5.1x.
FYI: Novell Menu v2.30 & loading TSRs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Novell Menu v2.30 & loading TSRs
DOCUMENT ID#: FYI.A.1012
DATE: 31JUL91
PRODUCT: Btrieve for DOS, XQLP & XQLPO, and Xtrieve PLUS
PRODUCT VERSION: 5.x, 2.x, and 4.01a
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The MENU.EXE v2.30 which was released with NetWare v2.x and 3.x requires 90k of memory to load. If in the past you've been using the earlier release of MENU.EXE to execute batch files to load your Btrieve, XQLP[O], and Xtrieve successfully, you'll now find that these same batch files with the new MENU.EXE are hanging. This is due to the fact that the newer MENU.EXE has taken much more RAM than previous versions of MENU.EXE and there isn't enough memory for these TSRs to now load.
SOLUTION
Replace the MENU.EXE v2.30 with an earlier release which will not require90k. Or download the latest MENU.EXE from CompuServe NOVA Library 6. The file is called MENU34.ZIP. This is v2.34 and it only requires 30k of memory to load.
FYI: Btrieve, DOS Share, and LanTastic networks
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve, DOS Share, and LanTastic networks
DOCUMENT ID#: FYI.A.1011
DATE: 31JUL91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: 5.xx
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Under the LanTastic network, DOS SHARE.EXE is used to control multi-user access and concurrency. This must be loaded on any machine being used as a server. If you also load SHARE on workstations, each local copy will be used to "control" concurrency. This, of course, will result in no concurrency control because each user will never see any conflicts. Therefore, SHARE must be loaded on any server that has Btrieve files, and NEVER loaded on a workstation or you will eventually corrupt your Btrieve data files.
In addition, LanTastic also allows a server to be used as a workstation. If this server/workstation has SHARE loaded (because it has Btrieve files on its hard disk), and you are also accessing Btrieve files on another server you will have the same problem described above, and will eventually corrupt those files on the second server.
SOLUTION
Localize all of your Btrieve data files on a single server and load DOSSHARE only on that server and NOT on each workstation/server. Or, if you want multiple servers to have Btrieve files, don't use those servers as workstations.
FYI: Btrieve Record Locking in Read Only mode
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Record Locking in Read Only mode
DOCUMENT ID#: FYI.A.1010
DATE: 31JUL91
PRODUCT: Btrieve
PRODUCT VERSION: 5.1x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
It is possible to lock a record within a Btrieve file which has been opened in Read Only mode. Any of the four lock biases (100, 200, 300, or 400) will be successful when used on a read of a record. However, remember you may need to use the unlock operation to release the lock(s), since you will not be able to rely on "implicit unlocks" resulting from an update.
SOLUTION N/A
FYI: Error 2 on Unload of Btrieve NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error 2 on Unload of Btrieve NLM
DOCUMENT ID#: FYI.A.1009
DATE: 31JUL91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.1x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
When attempting to unload the Btrieve NLM v5.1x a NetWare error 2 may occur. This is not a Btrieve status=2 error. It is a NetWare error indicating the NLM you are trying to unload is unable to be unloaded until the NetWare SQL NL is unloaded. This may occur when either using BSTOP.NCF or when using the manual unload Btrieve command.
SOLUTION
Unload the NetWare SQL NLM with the NSSTOP.NCF file before trying to unload the NetWare Btrieve NLM.
FYI: Date User Password Expires Resets To January 1, 1985
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Date User Password Expires Resets To January 1, 1985
DOCUMENT ID#: FYI.P.9476
DATE: 30JUL91
PRODUCT: NetWare
PRODUCT VERSION: v2.15, v2.2, v3.11
SUPERSEDES: FYI.P.9635
SYMPTOM: Date Password Expires resets to January 1, 1985.
ISSUE/PROBLEM
Date Password Expires resets to January 1, 1985.
This happens when the SUPERVISOR gives or changes the user password in SYSCON AND the user answers NO to change password when prompted. The Date Password Expires defaults to January 1, 1985.
A good example is in the upgrade to 3.x NetWare, the supervisor has to set a password for each user. If you look at the restrictions before the user does his login and changes it, the date will be set to January 1, 1985.
FYI: setmode() is Missing from CLIB.IMP File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: setmode() is Missing from CLIB.IMP File
DOCUMENT ID#: FYI.A.3811
DATE: 30JUL91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDK
SUPERSEDES: N/A
SYMPTOM: NLM won't link if setmode is used in the code.
ISSUE/PROBLEM
Setmode is missing from the CLIB.IMP file. This file lists all the symbols that other NLMs can import. So if setmode is used in the code, at link time this symbol will not be found. Thus, the linker won't be able to create the NLM.
SOLUTION
Do not use setmode() in your code. This API is listed in the documentation, however, since it is not exported from CLIB, it cannot be used.
FYI: C-Interfaces & ScanFile/DirEntry
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: C-Interfaces & ScanFile/DirEntry
DOCUMENT ID#: FYI.A.2624
DATE: 30JUL91
PRODUCT: C-Interfaces
PRODUCT VERSION: v1.2x
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Some of you may already know this but I understood that the ScanFileEntry and ScanDirEntry can scan for both files and directories. Well, both these APIs can and do but must be called twice in order to get both directories and files. The problem is that the 'searchAttribute' variable may be setup to scan for either files and/or directories. Thinking like the DOS world, the search attribute may be 0x16 for scan for everything. This will however, only return directories with our two APIs. Setting it to 0x06 will allow scanning for files only.
Using the ScanFileEntry and ScanDirEnty, the user must make two separate calls to fetch all directories and files.
SOLUTION N/A
FYI: Checking for Directory existence & User Rights
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Checking for Directory existence & User Rights
DOCUMENT ID#: FYI.A.2623
DATE: 30JUL91
PRODUCT: C Interfaces
PRODUCT VERSION: all
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The need to check for the existence of a Directory when a user has limited rights poses some interesting problems. As an example:
A user has no rights at the root, but is supposed to have specified rights in a directory that we want to check existence of. In this case he has no rights in the branch of the directory path that needs to be checked. Most functions that are normally used for testing the existence of a directory, i.e. rename, get attribute, & several of our API's, need some sort of modify and/or read privileges, which the user does not have.
The most successful method, which still limits the user's rights, is to grant them 'Scan' privileges using the Trustee Assignments, in a directory in which the SEARCHED for directory is to reside. The function to carry out the test can be the DOS - Set Current Directory, or change directory, function, INT 21h, function 3Bh. This by the way works at the command prompt using CHDIR also, as one would expect.
What's interesting, is that by granting the user only the 'Scan' rights specifically to the parent directory, the user can only see the directory path to get to that parent directory (and the SEARCHED directory is it exists). Files and 'other' directories in that path are not seen.
NOTE: Applications that test for the existence of a directory may have some problems when the system supervisor or administrator does not foresee which parent directories need the 'Scan' rights. Planning is needed in this case.
SOLUTION N/A
FYI: Btrieve /F and File Handles
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve /F and File Handles
DOCUMENT ID#: FYI.A.1621
DATE: 30JUL91
PRODUCT: Btrieve for DOS
PRODUCT VERSION: v5.10
SUPERSEDES: N/A
SYMPTOM: Btrieve v5.10 uses more file handles than earlier versions, often resulting in status 87's.
ISSUE/PROBLEM
Btrieve v5.10 uses more file handles than it's predecessors because of performance issues. The old method involved rotating the open files among 20 handles, maximum. The new method does not rotate handles, but instead uses a DOS file handle for every file it needs to have open.
SOLUTION
Btrieve uses file handles as follows: 1 for each Btrieve file, 1 for each.PRE file, 1 for each logged file, 1 for the transaction file, and 3 for extended files. In a worst case scenario, with 60 Btrieve files open and all 60 files listed in the BLOG.CFG file, Btrieve would need a total of 184 (60*3 + 4) file handles. To allow for this, the CONFIG.SYS command files= and the SHELL.CFG (or NET.CFG) command file handles= should be set to this number of total files.
files=184 <--goes in CONFIG.SYS
file handles=184 <--goes in SHELL.CFG (or NET.CFG)
/F:60 <--goes on Btrieve command line (other parameters may need to be adjusted as well)
Once the .PRE file is open Btrieve does not close it until the associated Btrieve file is also closed. But, as .PRE files are not always opened, this maximum number of file handles may never need to be used. For example, if 60 Btrieve files are open, 18 are accessed in a transaction, 10 are being logged, and non of the files have been extended, Btrieve may require as little as 89 (18*2 + 10*2 + 32 + 1) or (60 + 18 + 10 + 1) file handles, instead of a worst case of 184, unless it needs to write to other .PRE files for other reasons.
Keep in mind that, when an application is executed, DOS already has 3 file handles open (stdin, stdout, stderr). In addition, some programming languages, including C, open an additional 2 file handles (stdprn & stdaux). Programs that use overlays will usually need additional file handles as well. For the previous example, the total file handles should probably be set to 94 if the application is written in C.
FYI: Salvage from Deleted Directories
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Salvage from Deleted Directories
DOCUMENT ID#: FYI.A.1625
DATE: 26JUL91
PRODUCT: NetWare
PRODUCT VERSION: 3.x
SUPERSEDES: N/A
SYMPTOM: SALVAGE function reports not enough rights to salvage directory if the DELETED.SAV directory is missing and the user picks "Salvage from deleted directories"
ISSUE/PROBLEM
When a file is deleted in NetWare 3.x, the file remains "in" the directory until a purge is executed or the "life" of the deleted file expires. But, when files and their parent directory are deleted, the deleted file entries are placed in the DELETED.SAV directory off the root of that volume. This directory is marked Hidden System so that it is not normally messed with. But, if this directory (DELETED.SAV) is deleted for whatever reason, then deleted files whose parent directory is deleted are gone forever. In addition, SALVAGE will report a lack of sufficient rights when trying to salvage files from deleted directories.
Of interest to developers: To salvage the deleted files whose parent directory has been deleted, execute the ScanSalvagableFiles function on the \DELETED.SAV directory.
SOLUTION
Re-create the DELETED.SAV directory for that volume with the following commands:
MD \DELETED.SAV
FLAGDIR \DELETED.SAV HS
This will not allow you to salvage already deleted files, but will allow them to be salvaged the next time their directory is also deleted.
FYI: Windows, the maximum numbers of ECBs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows, the maximum numbers of ECBs
DOCUMENT ID#: FYI.A.2902
DATE: 24JUL91
PRODUCT: Windows SDK
PRODUCT VERSION: v1.21
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
If your Windows application is making IPX calls, you will have to identify the number of ECBs to be allocated using IPXInitialize. If your application is passing zero to the IPXInitialize(), in the maxECBs parameter, this will indicate that your application is going to manage its own ECBs allocations, otherwise you will depend on the NWIPXSPX.DLL to manage the ECBs allocated for you. In the 386 enhance mode, the maximum number of outstanding ECBs that will be submitted to IPX is ninety when the packet size is 576 byte.
SOLUTION N/A
FYI: Object IDs in the ChangeDirectoryEntry API
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Object IDs in the ChangeDirectoryEntry API
DOCUMENT ID#: FYI.A.3115
DATE: 23JUL91
PRODUCT: CLIB
PRODUCT VERSION: v3.11
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The object IDs used in the API ChangeDirectoryEntry() in CLib v3.11 *must* be LongSwap()ed before they are passed in. This applies to the MOwnerID, MLastArchivedID and MLastpdatedID structure members.
SOLUTION N/A
FYI: Fake Roots
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Fake Roots
DOCUMENT ID#: FYI.A.1624
DATE: 23JUL91
PRODUCT: System Calls - DOS
PRODUCT VERSION: v1.0
SUPERSEDES: 17-Jun-91
SYMPTOM: N/A
ISSUE/PROBLEM
Recently, there was an FYI on how to find the true path of a fake rooted drive. It suggested using the C Interface-DOS function GetFullPath() to retrieve the real path based on the system volume. That works, but the function is not available to System Calls users.
SOLUTION
To determine the real root from a fake rooted drive by either System Calls-DOS or C Interface-DOS, first obtain the handle of the drive in question, using the function GetDirectoryHandle. If the handle is 0, the drive is either local or not valid. Then, pass this handle into GetDirectoryPath. The returned path will include the volume and the full path of the associated handle. Keep in mind, though, the slashes separating the directories will be forward slashes instead of back-slashes.
These functions are also useful for Btrieve applications that need to work correctly with fake roots and the Btrieve requester. If the application or Btrieve interface were to translate Btrieve OPEN operations to pass the real path to the requester, then the server based Btrieve would not return status 12's on open.
These functions are documented in the Directory Services chapter of either the NetWare System Calls-DOS or NetWare C Interface-DOS manuals.
FYI: Xtrieve Default Page Size
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve Default Page Size
DOCUMENT ID: FYI.A.3407
DATE: 19JUL91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.10
SUPERSEDES: NA
SYMPTOM: Btrieve Status 29 (Invalid Key Length)
ISSUE/PROBLEM
Earlier versions calculated page sizes automatically. This version gives you control and allows you to specify any valid page size desired. However there is a default and it's 512. A minimum of 8 key values must fit on 1 page and this restriction is easily violated causing a Btrieve Status 29.
SOLUTION
Select an acceptable page size from the Xtrieve menu when creating a new file.
FYI: XQLP Status 210
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQLP Status 210
DOCUMENT ID#: FYI.A.2214
DATE: 19JUL91
PRODUCT: NetWare SQL Client/Server Starter Kit
PRODUCT VERSION: 2.11
SUPERSEDES: N/A
SYMPTOM: XQLP error 210 recalling a table
ISSUE/PROBLEM
Several customers have encountered an "XQLP error 210" while trying to recall a table in SQLFile (which is part of the Client/Server starter Kit). This seems to happen on tables that have a large number of fields defined to them.
SQLFile is trying to fetch all of the field names with one call, making the data buffer very large. The default parameters may not be configured large enough to handle this.
SOLUTION
After increasing the maximum data buffer size (record length) for Btrieve and NetWare SQL, make sure to load NSREQ.EXE with the appropriate /d: parameter, and MORE IMPORTANTLY - SQLFile.exe also has a /d: parameter that must be set. Page 4-4 in the "Introduction to Client/Server Computing" book that comes with the Client/Server starter kit, gives an example for loading SQLFile.
FYI: ScanVolForRestrictions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanVolForRestrictions
DOCUMENT ID#: FYI.A.1623
DATE: 19JUL91
PRODUCT: NetWare C for DOS
PRODUCT VERSION: 1.2
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The directory API call, ScanVolForRestrictions, does not work as documented. The sequence number is documented as passed by reference (*sequence), but is prototyped as passed by value. This may be changed in a later version of the API's, but for now, there's a quick work-around.
SOLUTION
Call the function as prototyped, but, after calling the function, increment the sequence number by the byte value at offset 0 of NWBuffer, as follows:
sequence += NWBuffer[0];
The alternate solution is to change the prototype, function, and all references to sequence within the function to pointer references and then update sequence just before the return with the following line:
*sequence += NWBuffer[0];
FYI: Server Reboot when loading PROTECT NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server Reboot when loading PROTECT NLM
DOCUMENT ID#: FYI.A.3116
DATE: 18JUL91
PRODUCT: NetWare C for NLMs
PRODUCT VERSION: SDK(a)
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The PROTECT NLM will reboot the v3.11 server if it is loaded with the -H parameter. i.e. LOAD PROTECT -H causes an Abend.
SOLUTION
Currently, the only fix is to not use the -H parameter.
FYI: Windows & Namepipes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows & Namepipes
DOCUMENT ID#: FYI.A.2622
DATE: 18JUL91
PRODUCT: OS/2
PRODUCT VERSION: 1.3
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Using the NamePipes DosPeekNmPipe API has a problem under Windows 3.0 when another task is run or switched over the current application. The error, invalid handle, is returned on any subsequent calls once the application is switched back.
SOLUTION
Use the new NETAPI.DLL for Windows, version 1.3D. This DLL can be found in the WINUP2.ZIP file on Compuserve under the NDD forum.
FYI: Place Holders in Dynamic Embedded SQL statements
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Place Holders in Dynamic Embedded SQL statements
DOCUMENT ID#: FYI.A.1736
DATE: 18JUL91
PRODUCT: Embedded SQL
PRODUCT VERSION: 2.11
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
When dynamically setting up SQL statements in an embedded SQL environment, place holders are used to specify where host variable values will be used when the statement is executed. These place holders look like host variables, but they do not have to be declared. The following example to update a zip code to a new value illustrates this:
/** first, declare all host variables to be used **/
EXEC SQL BEGIN DECLARE SECTION;
char sqlupdate[200];
char newzip[5], oldzip[5];
EXEC SQL END DECLARE SECTION;
/** next, build and prepare the dynamic statement **/
sprintf(sqlupdate, "UPDATE patients SET zip = :v1",
" where zip = :v2");
EXEC SQL PREPARE S1 FROM :sqlupdate;
/** Now, set up the values in the host variables to be used in
this statement. Usually, you will be prompting the user for
input here **/
newzip = "78721";
oldzip = "78700";
/** Now execute the prepared statement to perform the update, which
will use the specified host variables for the place holders in
the original statement. **/
EXEC SQL EXECUTE S1 USING :newzip, :oldzip;
Notice, I did not have to declare the place holders v1 and v2; they are comparable to substitution variables used in the XQL APIs.
SOLUTION N/A
FYI: NetWare 2.2 File Server Requirements
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 2.2 File Server Requirements
DOCUMENT ID#: FYI.A.1313
DATE: 17JUL91
PRODUCT: NetWare
PRODUCT VERSION: 2.2
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
The minimum memory requirement for the NetWare 2.2 file server is 2.5MB. If VAPs are to be run in the server, a minimum of 4MB of memory is required. NetWare v2.2 will support and address up to 12MB of memory in the server. The following formula is useful for determining memory requirements:
(.005 X MB of disk storage) + 2MB + 2MB if running VAPs in the server
SOLUTION N/A
FYI: Misconceptions about the TRXNET Driver
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Misconceptions about the TRXNET Driver
DOCUMENT ID#: FYI.A.1312
DATE: 16JUL91
PRODUCT: IPX
PRODUCT VERSION: N/A
SUPERSEDES: N/A
SYMPTOM: Sending large SPX packets causes the workstation to hang.
ISSUE/PROBLEM
The TRXNet driver which comes with NetWare is misconceived by many as a generic driver. This is not the case. The TRXNet driver is an 8 bit Arcnet driver which was originally developed for RXNet and RXNet2 which were Novell cards. In many cases, users attempt to use this driver with whatever Arcnet card they may be using. For example, attempting to use this driver with Pure Data's LAN driver would appear to work. However, it does have one known problem. SPX packets larger than 504 bytes can not be sent. The workstation nor the application hang when this happens. Those larger packets are simply not sent. This occurs regardless of the configured maximum size established during "genning". The TRXNet driver is Novell certified to run ONLY on the RXNET and RXNet2 cards which are no longer developed. The drivers, however, are still updated and maintained.
SOLUTION
The LAN driver to use should be Pure Data's own LAN driver.
FYI: XQL and Turbo Pascal For Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL and Turbo Pascal For Windows
DOCUMENT ID: FYI.A.1236
DATE: 14JUL91
PRODUCT: Windows
PRODUCT VERSION: XQL 2.x & Windows 3.x
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
How do you call XQL functions from Turbo Pascal for Windows?
SOLUTION
Below are example definitions of Windows XQL calls using Turbo Pascal for Windows. Included with the XQL for Windows Requestor DLL package is a file, XQLCALLS.H, which contains all the C function prototypes for all XQL calls. Calling these functions from Turbo Pascal, as you can see below, is a matter of converting the function prototypes from C format to Pascal format.
A simple rule to follow is if the C data type begins with LP (Long Pointer), use the VAR keyword in front of the parm definition. If LP doesn't precede the C data type, do not use the VAR keyword.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NLM SDKa & Number of Global Semaphores
DOCUMENT ID#: FYI.A.2621
DATE: 12JUL91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKa
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
On NetWare 3.11, the number of semaphores that can be opened corresponds directly with the number of LOCKs that the file server can handle for a workstation (connection). The default is 500. If more are required the number of locks must be increased. In most cases it is obviously sufficient but when more are needed the SET console command is used, option 6 - LOCKS. The MAXIMUM LOCKS PER CONNECTION needs to be set to the desired value.
SOLUTION N/A
FYI: Difference between NetWare Btrieve NLM's 5.11 & v5.15
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Difference between NetWare Btrieve NLM's 5.11 & v5.15
DOCUMENT ID#: FYI.A.2328
DATE: 12JUL91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.11/5.15
SUPERSEDES: N/A
SYMPTOM: In 5.11, workstations appear hung on Btrieve calls, but there are clues that Btrieve operations have been completed successfully. For example, a workstation may appear to "hang" on an open call, yet during the hang, the file is listed as open in Bconsole.
ISSUE/PROBLEM
The Btrieve 5.11 NLM has a known problem that has been fixed in the 5.15 version. In 5.11, when each NLM engine thread received its response from the Btrieve engine, it queued the packets for Bspxcom to send back to the appropriate workstation. Bspxcom handled the sends linearly (meaning another thread's packet wasn't sent until the previous thread's packet was received by the workstation). In cases where many re-sends were necessary for a certain packet, Bspxcom would become a bottleneck. Workstations making calls to Btrieve would appear hung.
Further evidence of this situation is if in Bconsole, the numbers of packets sent and received match, but are less than the number of packets processed. The fact that the number of packets processed is high reflects the many re-sends necessary for that packet. In 5.15, each engine thread sends its own response to the appropriate workstation, and only sends information to Bspxcom to do the "bookkeeping."
SOLUTION
Use the Btrieve NLM v5.15.
FYI: Interfacing Btrieve for Windows with Microsoft Visual Basic
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Interfacing Btrieve for Windows with Microsoft Visual Basic
DOCUMENT ID#: FYI.A.2102
DATE: 12JUL91
PRODUCT: Btrieve for Windows
PRODUCT VERSION: 5.10
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
As we all know, there is not a Btrieve for Windows interface for MS Visual Basic. However, by studying the WBTVINTF.C interface you can determine how the Btrieve Windows DLL expects the parameters on each Btrieve call:
One method of calling Btrieve is to call BTRCALL().This method requires seven parameters. It is done as such:
BTRCALL(int opcode,
(char far*) position_block,
(char far*) data_buffer,
(unsigned far*) data_buffer_length,
(char far*) key_buffer,
(unsigned char) key_buffer_length,
int key_number);
Notice there is an additional parameter: key length. This parameter is always set to 255. Again, the best documentation on this is to look at the interface file and review the call to BTRCALL in the BTRV routine.
In Visual Basic, the default is that all parameters passed to functions are passed by reference (by address). Parameters that need to be passed by value, need to be defined in the parameter list with the BYVAL keyword in front of each parameter. The following example will show how to initialize the Btrieve functions and make a simple Btrieve OPEN call in Visual Basic.
Global Const BOPEN = 0
Global Const BINSERT = 2
Global Const BUPDATE = 3
Global Const BNEXT = 6
Global Const BPREVIOUS = 7
Global Const BGREATERorEQUAL = 9
Global Const BFIRST = 12
TYPE PosBlk
PBelements As String * 128
END TYPE
TYPE KeyBuffer
FileName As String * 64
END TYPE
Declare Function wbtrvinit Lib "wbtrcall.dll" (init As Any) As Integer
Declare Function wbtrvstop Lib "wbtrcall.dll" () As Integer Declare
Function btrcall Lib "wbtrcall.dll" (ByVal op%, Pb As PosBlk, Db As Any,
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Private Directory Attribute
DOCUMENT ID#: FYI.A.3330
DATE: 11JUL91
PRODUCT: NetWare OS
PRODUCT VERSION: 2.15 and 2.20
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
With the introduction of NetWare 2.15 a new directory attribute was added called the Private attribute. This attribute prevents users from seeing subdirectories for which they do not have scan rights. This is similar to the default access users get with NetWare 3.x. This attribute can be set by using the FLAGDIR command line utility, or the FILER utility.
This issue was brought up by a backup developer who wanted to know where the private attribute was stored, and how it was set/reset. The Private attribute is part of the directory attributes, and is set/reset by toggling the 7th bit (of 0-7) of the first byte of the directory attribute WORD.
SOLUTION N/A
FYI: The NetWare Shell and CHMOD
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: The NetWare Shell and CHMOD
DOCUMENT ID#: FYI.A.3329
DATE: 11JUL91
PRODUCT: NetWare Shell
PRODUCT VERSION: All
SUPERSEDES: N/A
SYMPTOM: Unable to reset the directory hidden and system directory attributes with the DOS CHMOD function.
ISSUE/PROBLEM
The NetWare Shell will not allow the DOS CHMOD function to reset the hidden and system directory attributes. This is due to the fact that the shell does not search for hidden or system directories when making the CHMOD call.
SOLUTION
The next version of the shell should correct the problem.
FYI: Documentation Bug in Network C for NLMs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Documentation Bug in Network C for NLMs
DOCUMENT ID#: FYI.A.3810
DATE: 10JUL91
PRODUCT: Network C for NLMs
PRODUCT VERSION: SDKa
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
CopyToScreenMemory API has a parameter Rect which is documented as an output parameter. It should be an input parameter.
SOLUTION
Correct your documentation.
FYI: UPPER.ALT did not ship with Btrieve for OS/2 v5.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: UPPER.ALT did not ship with Btrieve for OS/2 v5.10
DOCUMENT ID#: FYI.A.2326
DATE: 10JUL91
PRODUCT: Btrieve for OS/2
PRODUCT VERSION: 5.10
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
This was an oversight, and UPPER.ALT should be made available to OS/2 Btrieve owners who want it.
SOLUTION N/A
FYI: Error in XQLVersion Function in XQLMTRBO.PAS Interface
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error in XQLVersion Function in XQLMTRBO.PAS Interface
DOCUMENT ID#: FYI.A.1735
DATE: 10JUL91
PRODUCT: XQL for DOS
PRODUCT VERSION: 2.11
SUPERSEDES: N/A
SYMPTOM: Application with an XQLVersion call using the Turbo Pascal interface XQLMTRBO.PAS (17,837 bytes, 8-24-90) will not compile.
ISSUE/PROBLEM
The function parameter for an XQLVersion call is set up incorrectly in the Turbo Pascal interface for XQLM. You will not be able to use this function unless you modify and re-compile the interface.
SOLUTION
Make the following modification to lines 68 and 626 of XQLMTRBO.PAS:
Old Line: FUNCTION XQLVersion ( VBUFFER : INTEGER ) : INTEGER;
New Line: FUNCTION XQLVersion ( VAR VBUFFER ) : INTEGER;
Your application should be passing in a record structure consisting of two 2-byte integers to retrieve the version and revision of XQL/NSREQ that is loaded.
FYI: Btrieve Reset of Another Workstation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Reset of Another Workstation
DOCUMENT ID#: FYI.A.2329
DATE: 09JUL91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.0, 5.10, and 5.15
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
How do you reset another workstation using either "BUTIL -Reset <conn #>" or Btrieve operation 28, with -1 as the key number, and the connection number to be reset in the key buffer?
This operation works ONLY IF the workstation trying to do the resetting has established a connection with Btrieve. Otherwise a status of 0 is returned, but nothing has been done. The connection can be established with a simple "BUTIL -Stat" on any file. The fact that the connection must be established first is considered an omission in the documentation rather than a problem with Btrieve.
As a side-effect, if the resetter workstation, and the resettee are both attached to ANOTHER file server, say fs #2, and the resettee happens to have the same connection number on fs #2 as it did on the first file server, the resettee will also be reset on fs #2. (This problem is currently being addressed-- 7/9/91.)
FYI: Invalid Session ID or Short Session Name Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Invalid Session ID or Short Session Name Error
DOCUMENT ID#: FYI.A.2814
DATE: 08JUL91
PRODUCT: NETWARE 3270 TOOLS
PRODUCT VERSION: 1.5
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Error saying invalid Session ID or Short Session Name in 3270 CUT or DFT emulators.
SOLUTION
If you using a NetWare 3270 CUT Workstation control programs, the Session ID or the Session short name must be 'E'. If you are using a DFT emulator the Session ID can be any alphabetic character. Session ID for DFT or CUT emulator is defined in WSCONFIG while configuring WSLAN and it is also displayed on the OIA area or the Status line at offset 1939.
FYI: Btrieve Status 2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status 2
DOCUMENT ID#: FYI.A.2327
DATE: 08JUL91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: Status 2 that disappears when the operation is retried.
ISSUE/PROBLEM
The Btrieve 5.10a NLM which shipped with NetWare 3.10 has a known problem that has been fixed in the 5.15 version. The problem is a status 2 that disappears when the operation is re-executed. The scenario in which this problem occurs is: 1 workstation is reading from the file, and concurrently another workstation is opening the file in a transaction. I will use the term "thread for a workstation, because the NLM views each Btrieve call as an engine thread. In fact, one of the parameters for loading Bspxcom is the number of engine threads (as opposed to the advertiser thread and SPX manager thread which is always number 1).
Consider that thread #1 requests a read from a file. It gets the file handle from the Active File List and sends it as a value parameter to the read function. The read causes context switch to another thread. The second thread wants to open that file in a transaction. The normal procedure is for Btrieve to close the file to the task that had it open, and reopen it under TTS with a different file handle (this is true always--TTS is available whether files are flagged transactional or not). By the time that the first thread is ready to read, the file handle is no longer valid. A retry of this operation causes Btrieve to go back to the AFL to get the file handle, and this time it will be valid. The 5.15 NLM solves this conflict by sending the address of the handle pointer instead of its value.
SOLUTION
Use the Btrieve NLM v5.15, or trap for status 2 and retry the operation.
FYI: Btrieve NLM on NetWare 3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve NLM on NetWare 3.11
DOCUMENT ID#: FYI.A.2213
DATE: 03JUL91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.10
SUPERSEDES: N/A
SYMPTOM: Server crashes with General Protection Processor Exception running the console command process.
ISSUE/PROBLEM
The reason we state that NetWare Btrieve 5.10 will NOT run on NetWare 3.11 is that if Btrieve is loaded immediately after the file server is booted, it will cause the server to crash with "General Protection Processor Exception". Now, depending on what other NLM's the user has loaded and unloaded on the server, it is possible to get Btrieve NLM 5.10 to load, and it will run if you can get it loaded. However, this is not a clean way to run Btrieve and it isn't guaranteed to work every time.
Btrieve 5.10 NLM crashes when loaded on NetWare 3.11 because it has its own startup code that is not from CLIB even though it does make CLIB calls. Btrieve 5.15 NLM which ships with NetWare 3.11 was linked with PRELUDE.OBJ and is using this module for startup.
SOLUTION
Run the version of Btrieve that is shipped with NetWare 3.11 which is Btrieve 5.15.
FYI: BCONSOLE.EXE Memory Usage
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BCONSOLE.EXE Memory Usage
DOCUMENT ID#: FYI.A.3006
DATE: 01JUL91
PRODUCT: NetWare Btrieve / BCONSOLE.EXE
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: If several files are opened by NetWare Btrieve, BCONSOLE.EXE returns "-2 on CreatePortal".
ISSUE/PROBLEM
BCONSOLE.EXE does not use expanded or extended memory. Only conventional memory is used. Thus, if you don't have enough memory available, Bconsole might fail to show you the information you are looking for. For example, if several files are opened and you choose "Active File", you might get "-2 on CreatePortal". Bconsole returns this error message simply because there isn't enough memory available to be allocated. In other words, the attempt to malloc space has failed.
SOLUTION N/A
FYI: Performance of Extended Inserts vs. Single Inserts
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Performance of Extended Inserts vs. Single Inserts
DOCUMENT ID#: FYI.A.1831
DATE: 28JUN91
PRODUCT: Btrieve for Dos
PRODUCT VERSION: 5.10a
SUPERSEDES: N/A
SYMPTOM: Slower performance with extended inserts
ISSUE/PROBLEM
Several people have noticed that extended inserts in the DOS environment are slower than single inserts. It will take less time to insert 200 records 1 at a time than 200 records 20 at a time.
SOLUTION
The reason for this is pre-imaging. With the extended functions, the pre-image file is expanded on every record, much like in a transaction. This creates I/O overhead and creates performance degradation. The single inserts only have to manage the pages for the duration of the single insert.
FYI: Choosing a /S Parameter for Brequest
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Choosing a /S Parameter for Brequest
DOCUMENT ID#: FYI.A.1830
DATE: 28JUN91
PRODUCT: NetWare Btrieve NLM
PRODUCT VERSION: 5.15
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
Choosing an appropriate /S parameter for Brequest can be confusing at times. Starting with Brequest version 5.15 one can choose their S parameter based upon the number of servers which are advertising Btrieve which they are attached to. Here is the formula:
/S = Servers Advertising Btrieve + 1
The +1 is necessary for a work space. When you log into a server and load Brequest it starts with the server you are logged into and checks to see if it's a Btrieve server; if so, it retains it in the buffer, if not, it throws it away. So, lets say you are attached to 4 servers, 3 advertising Btrieve. It begins checking: each one of the Btrieve servers is given it's buffer, then the next two servers are checked. Because they are non-Btrieve servers they are rejected and the buffer is freed. However the buffer had to be there in order to check for Btrieve advertisements.
In previous versions of Brequest the /S parameter could be set very high (20 - 30). The reason for this is because Brequest would keep track of all servers advertising Btrieve across a network regardless of the user being attached.
SOLUTION N/A
FYI: BROLLFWD Documentation error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BROLLFWD Documentation error
DOCUMENT ID#: FYI.A.2407
DATE: 27JUN91
PRODUCT: Btrieve for MS-Windows, WBROLL
PRODUCT VERSION: 5.10, 5.12
SUPERSEDES: N/A
SYMPTOM: Error message "Record(s) length over current data buffer sizes in <filename path>" returned when running WBROLL to roll forward a file.
ISSUE/PROBLEM
There is a documentation error in the "Btrieve for MS-Windows Installation and Operation" manual on page 2-13. The databufferlen parameter under [wbroll] in the WIN.INI file should be spelled datalength.
SOLUTION N/A
FYI: Jerusalem B Virus Destroying Server.exe and Ipx.com
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Jerusalem B Virus Destroying Server.exe and Ipx.com
DOCUMENT ID#: FYI.P.9504
DATE: 24JUN91
PRODUCT: NetWare
PRODUCT VERSION: v3.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A customer who had installed 3.1 was getting GPPE errors as well as workstations randomly hanging and locking up after ipx was run more than once.
SOLUTION
He did a virus scan and discovered that he had been infected by the Jerusalem B and it was destroying both server.exe and ipx.com. He got rid of it and has been going for a week with no problems.
FYI: Problem with AFPGetFileInformation API
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem with AFPGetFileInformation API
DOCUMENT ID#: FYI.A.3809
DATE: 21JUN91
PRODUCT: CLIB
PRODUCT VERSION: 3.11
SUPERSEDES: N/A
SYMPTOM: N/A
ISSUE/PROBLEM
AFPGetFileInformation is supposed to return a length preceded string in the field longname of the structure AFPFileInfo. However, it does not. It only returns the null terminating string.
SOLUTION N/A
FYI: Extended Attributes (C Interface - DOS)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Extended Attributes (C Interface - DOS)
DOCUMENT ID#: FYI.A.1620
DATE: 21JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The functions SetExtendedAttributes and GetExtendedAttributes behave differently on NW 286 and NW 386.
On NW 286, all bits can be set and all bits are returned, including bits 6 and 7 (Read Audit and Write Audit), which are currently not used, and bit 3 (marked as reserved).
On NW 386, only bits 0, 1, 2, and 4 can be set.
Bits 0, 1, and 2 make up the search mode of the file, similar to the default search mode of the workstation. These bits can be changed via Get/SetExtendedAttributes or the SMODE utility shipped with NetWare. Bit 4 is the transaction bit. Bit 5 is the Index bit (which is normally only settable on NW 286).
FYI: NetWork C for NLM's - SDKa, CLIB 3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWork C for NLM's - SDKa, CLIB 3.11
DOCUMENT ID#: FYI.A.2618
DATE: 20JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a problem when volumes are dismounted from a server when trying to obtain volume information via volume numbers.
The API of concern is the GetVolumeInfoWithNumber. It accepts a volume number as its input parameter. Due to a small bug in CLib, the volume numbers do not correctly map to volumes when volume(s) have been deleted.
Suppose for example you have 3 volumes: SYS:, VOL1: and VOL2:, and VOL1 is dismounted. Then the volumes still mounted have the numbers 0 & 2. 1 is the dismounted volume. Carrying out a GetVolumeInfoWithNumber(1) will NOT return an error indicating that that volume is dismounted, but returns the information for VOL2, number 2.
There is no real workaround, except for the user to also carry out the API GetVolumeName on that volume. It works correctly and will return an error on dismounted volumes. Using these API's together the user may successfully get information on the correct volumes.
FYI: Xtrieve v4.01a patching XQL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve v4.01a patching XQL
DOCUMENT ID#: FYI.A.2207
DATE: 20JUN91
PRODUCT: XQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
As of 6/20/91 the XQL 2.01 patches (using PI.EXE) are unable to patch the copy of XQLP.EXE and XQLPO.EXE that shipped with Xtrieve Plus 4.01a.
XQL 2.01 released: XQLP.EXE 158736 30 Aug 88 8:30 am
XQLPO.EXE 162736 29 Aug 88 7:58 pm
Xtrieve PLUS 4.01a released XQLP[O] 2.01 with all the patches available to date, when Xtrieve came out Xtrieve's XQL 2.01 released:
XQLP.EXE 158736 23 Jan 89 1:24 pm
XQLPO.EXE 162736 13 Jan 89 5:04 pm
The problem: PI ensures that the user is patching an ORIGINAL copy of the product; Xtrieve Plus 4.01a did not ship an original copy of XQLP, XQLPO.
FYI: BROUTER's Purpose in Life
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: BROUTER's Purpose in Life
DOCUMENT ID#: FYI.A.1612
DATE: 20JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The usage of BROUTER (.NLM or .VAP) needs to be clarified. BROUTER is NOT needed just because multiple servers are running BTRIEVE.NLM or BSERVER.VAP. Although this information has been repeated time and again, I still speak with people who think differently.
If all that is loaded at the server(s) is Btrieve, and only work stations are accessing Btrieve, then BROUTER is NOT needed, at all!
A Btrieve VAP (or NLM) on server A does not need to talk to a Btrieve VAP (or NLM) on server B, and therefore does NOT require BROUTER. Just because you want to access multiple Btrieve files across multiple servers, doesn't mean you need BROUTER loaded.
So, what is BROUTER for? BROUTER is used for a SERVER PROCESS (VAP or NLM) to access BSERVER.VAP or BTRIEVE.NLM. The only Novell server process that currently requires BROUTER is the SQL server process (NW$SQL.VP0 or NWSQL.NLM). There is a difference, though, between the needs of the VAP environment vs. the needs of the NLM environment.
In the VAP environment, BROUTER.VAP is required for NW$SQL.VP0 to access local files, as well as files on other servers with either BSERVER.VAP or BTRIEVE.NLM loaded.
In the NLM environment, BROUTER.NLM is required for NWSQL.NLM to access files on other servers, but NOT on the local file server (this is because BTRIEVE.NLM is a library and can be accessed directly by another NLM on the same server). In this case, BROUTER only needs to be loaded on the server running the NWSQL.NLM. It then communicates directly with Btrieve at the other file servers, not via a BROUTER on those servers.
The best way to think of BROUTER is as a requester for servers. Only SERVER PROCESSES need to use BROUTER. If you have three servers with Btrieve loaded on them, and are only accessing these Btrieve files from work stations, you do NOT need BROUTER loaded.
Currently, the only Novell product that uses BROUTER is the SQL product. And then, only if a) it is NW$SQL.VP0, or b) it is either SQL product and needs to access Btrieve files which reside on another server.
FYI: Btrieve v5.10 for Windows Requester and 3C501 card
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 for Windows Requester and 3C501 card
DOCUMENT ID#: FYI.A.3005
DATE: 19JUN91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Product: Btrieve For Windows Requester with Btrieve NLM
Version: 5.10 (patched)
Short Description: Btrieve for Windows requester does not work with 3C501 card in enhanced mode.
Solution: Use some other cards!
There is a problem with running Btrieve for Windows in enhanced mode with the 501 3-com card. The performance is extremely bad which makes the user think the workstation is hung.
The problem can be duplicated using BTRTOOLS. Enter BTRTOOLS, open a file, do some Btrieve operations, close the file and exit BTRTOOLS. If you look at BCONSOLE.NLM, it shows that all files are closed. Now, bring up BTRTOOLS for the second time and try to open any Btrieve file.
It takes between 3 to 20 minutes for BTRTOOLS to return a status code. It seems to open the file immediately (BCONSOLE.NLM shows that the file is opened), but control is not returned to BTRTOOLS right away.
Two customers reported that their workstations were hung; but, replacing the card seemed to solve the problem.
FYI: Drivers and the Windows Environment
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Drivers and the Windows Environment
DOCUMENT ID#: FYI.A.2617
DATE: 19JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here are a few pointers to watch out for when people are trying to get their Windows 3.0 running on NetWare 2.X or 3.X.
1) Virtual drivers: *VPIC (Windows internal driver) is not recommended; *VPICD has some bugs (mainly when IRQ's 2 & 9 were used). The replacement is VPICDA.386. This driver is activated by placing it into the SYSTEM.INI file in the Enhanced area:
device=VPCIDA.386
It is recommended that this be done in all cases, but is only required for the ENHANCED mode.
2) Choosing IRQ's: Here is the scoop on IRQ's.
IRQ 2: Most people as a default use IRQ 2. Not a bad choice except that the Slave controller (8259 chip) shares IRQ 2, which at times causes problems. This problem may be contributed to by not using the VPCIDA.386 driver.
IRQ 3 & 4: Respective Comm ports 2 & 1. These are a good choice except when actual devices are already occupying the ports. The user must determine if there can be used successfully. (i.e. if they are free ports)
IRQ 5 & 7: Respective PRN ports 2 & 1. 5 is an obvious choice here since most people do not have 2 PRN devices on their PC's. However, using a PRN port may require the disabling of the port itself to get it off the IRQ line even if a device is not hooked up.
3) The other already known or mentioned items include the deletion of the VIPX.386 driver from the Enhanced section in the SYSTEM.INI file. This was to be the virtual driver for communication oriented system requests, but it is currently broken. PROVO is working quite hard at getting a new one. Therefore, as you may already know, to virtualize communication-oriented applications in DOS boxes, the use of TBMI/TASKID TSR's is required. For info on this, please refer to the TBMI.ZIP file on Compuserve.
4) VNETWARE.386 - driver whose purpose is to virtualize NetWare requests. I do not have any further information on this.
5) NETWARE.DRV - driver that contains code as dictated by the Microsoft C Driver Development Kit (DDK) as to the minimum required functions for NetWorking support. These functions allow Windows to talk to the NetWork. More functionality will be provided for applications and even our own Windows SDK.
FYI: XQL Pre-Processor v8 and Microsoft C 6.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL Pre-Processor v8 and Microsoft C 6.0
DOCUMENT ID#: FYI.A.2504
DATE: 19JUN91
PRODUCT: XQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When precompiling with XQL pre-processor v.8 and Microsoft C version 6.0, the precompiler may generate the following messages:
e1009 invalid declarator
e1026 semicolon; not volatile.
These errors are generated only when using Microsoft C v6.0 and can be ignored. The code generated by the pre-processor will work correctly.
FYI: Microsoft Basic and Btrieve v5.10a for DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Microsoft Basic and Btrieve v5.10a for DOS
DOCUMENT ID#: FYI.A.3004
DATE: 18JUN91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Short Description: Memory is not released when Btrieve is loaded and unloaded in a Basic application that chains programs together.
Status: This is not a Btrieve bug.
Solution: Unload Btrieve before chaining to another program. This is because Basic loads a file into memory when it chains two programs.
Consider a Microsoft Basic application that contains two program modules, program A and program B. Program A chains to program B. Program A loads Btrieve and program B unloads Btrieve by executing operation 25. Even though Btrieve is unloaded (any Btrieve operation returns status 20), the memory that was occupied by Btrieve is not released. In other words, that part of memory cannot be reused until you terminate the application. This is because Basic loads something into memory when you chain to another program. Thus, the free memory in the middle is not seen by the application.
The following is what memory look like before and after loading and unloading Btrieve:
Memory after loading Btrieve in program A:
1000: other
2ffc: memory occupied by Btrieve
36dc: free
Memory after chaining to program B;
1000: other
2ffc: memory occupied by Btrieve
36dc: file loaded into memory by Basic after chaining
37dc: free
Memory after unloading Btrieve:
1000: other
2ffc: free
36dc: file loaded into memory by basic after chaining
37dc: free
The area between 2FFC and 36DC is not available since TSRs are not unloaded in First In Last Out basis.
FYI: Drive Mappings and the Windows Environment
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Drive Mappings and the Windows Environment
DOCUMENT ID#: FYI.A.2616
DATE: 18JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Plain and simply, you cannot allocate NEW search drives in a Windows application, but you can modify EXISTING search drives that will allow you to somewhat control the root environment.
If the NWSHAREHANDLES = TRUE, the mapping is reflected in all VM's and the ROOT environment also.
If NWSHAREHANDLES=FALSE, only newly started VM's will get the modified mapping; already running VM's will have the original mappings. Here is the fun stuff, at least dealing with DOS Boxes. Suppose for example you have two DOS boxes with a search drive, let us say R:, mapped to different locations. Then, if you delete R: using MAP.EXE from the first DOS box it will be deleted OK. If you go to the second DOS box, the drive is no longer a search drive; it was modified via the global environment variable (i.e. the PATH variable), BUT it does exist as a NORMAL DRIVE.
Also, you may notice that using normal non-Windows MAP.EXE, which is what most people out there have, does not modify the PATH variable in a DOS box.
Also note that if using File Manager, running down a directory tree for any drive letter, will permanently change that drive mapping. This includes search drives, which may permanently hamper some applications.
FYI: Btrieve v5.10 NLM GPI on NetWare 3.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 NLM GPI on NetWare 3.1
DOCUMENT ID#: FYI.A.2206
DATE: 18JUN91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Do not run NetWare Btrieve NLM version 5.10 (5.11) on NetWare 3.11. It will GPI the server. Why? There were changes made to the operating system and CLIB.NLM between NetWare versions 3.10 and 3.11. The Btrieve NLM version 5.10 was written and tested using NetWare 3.10 and it's CLIB.NLM. The changes to the internal resource tracking conventions of CLIB.NLM & NetWare 3.11 OS have a NEGATIVE affect on Btrieve NLM 5.10 - GPI's.
As a side note: NetWare Btrieve NLM version 5.15 WILL run on BOTH NetWare 3.10 and NetWare 3.11, however, it is only available with NetWare 3.11 as of 06/18/91.
FYI: MapRoot
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MapRoot
DOCUMENT ID#: FYI.A.3324
DATE: 17JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There has been a lot of discussion about MapRooted drives and the inability to get the full path specification of a MapRooted drive. Well, there is a way to get the full path of a MapRooted drive. Simply use the GetFullPath call from the Miscellaneous Services of the NetWare C Interface. The path returned will include the server/vol:path.
This will also help developers that need to use functions such as ScanFileEntry on MapRooted drives. Perform the following functions to use these calls on MapRooted drives:
GetFullPath - Returns the server/vol:path.
ConvertNameToFullPath - Removes the server from the path.
strcat - to concatenate your search parameters to the path obtained above.
Pass a NULL directory handle to the function.
FYI: TCP/IP WITH TLI
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: TCP/IP WITH TLI
DOCUMENT ID#: FYI.A.3214
DATE: 17JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Under version 3.11 of NetWare the t_bind call will not return the Internet Protocol (IP) address if you pass a zero in for the requested address. This is because IP will only assign an address after you have requested a connection to another endpoint.
FYI: Undocumented Btrieve Status Code 77
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Undocumented Btrieve Status Code 77
DOCUMENT ID#: FYI.A.2015
DATE: 17JUN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A status 77 needs to be added to the Btrieve v5.x documentation. It is not currently documented.
A status 77 can be returned only from the Btrieve VAP or NLM when the engine is being accessed by another server based program, such as NetWare SQL. With the Btrieve VAP, a status 77 can only be returned by BROUTER.VAP. With the Btrieve NLM, a status 77 is returned from the Btrieve engine itself.
With the VAP, a status 77 will be returned on an operation with a lock (wait or no wait) bias, if the requested resource is locked by another user. A status 77 will also be returned if the application is in a wait transaction (119 or 319) and tries to access a file that is locked by another user.
With the NLM, a status 77 will be returned to the calling program if a WAIT lock bias is specified for an operation and the requested resource is locked by another. Also, as with the VAP, if in a wait transaction and the file to be accessed is locked by another application a 77 will be returned.
The reason for this 77 being returned instead of waiting is as follows. When using the Btrieve requester to access Btrieve, the actual wait and retry when a resource is locked is done by the requester. But, since a server based program is accessing Btrieve directly (or through Brouter for the VAP) if a wait was to be done invisibly to the programmer, it would have to be done by the Btrieve engine itself. Since this would tie up the engine and lock out other users that might be trying to release the requested resource, Btrieve does not perform the wait. Instead, Btrieve (or Brouter for the VAP) returns a status 77 and the requesting program can wait and retry.
FYI: GetServerInformation (NetWare C Interface)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetServerInformation (NetWare C Interface)
DOCUMENT ID#: FYI.A.1514
DATE: 17JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation for the NetWare C Interface states that the GetServerInformation call is a NetWare 2.x specific call. The documentation is incorrect, the GetServerInformation API call will also work under NetWare 3.x.
FYI: NetWare-J & Invalid Filenames
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare-J & Invalid Filenames
DOCUMENT ID#: FYI.A.1228
DATE: 17JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A word of warning for anyone running standard NetWare 3.x and NetWare-Japan on the same server (alternately). It works fine unless, while running NW-J, you name a file or directory with double-byte characters that will get interpreted by standard NW as invalid characters (e.g. '/;,?',etc...).
If you name files with these invalid characters, then try to load standard NetWare, you will not be able to mount the volume. You will have to run VREPAIR, which will detect the invalid names and change them to valid ones.
FYI: Accelerated Access for Btrieve Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Accelerated Access for Btrieve Files
DOCUMENT ID#: FYI.A.3907
DATE: 14JUN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This FYI is intended to clarify accelerated access mode (AAM). AAM is used to increase performance on file updates (inserts, updates, and deletes).
It is a common misconception that AAM disables pre-imaging. This is not true. Pre-imaging is used by Btrieve for situations other then a system failure. For example, Btrieve uses a pre-image roll back when a record with duplicate keys is attempted to be inserted. If the last key contains a invalid duplicate value, then the previously inserted key values must be backed out. Pre-imaging is used here even in AAM.
In normal mode, when a file is updated, the pages being updated are copied into the pre-image buffers and the buffers are flushed to disk before the file is updated. Accelerated access mode simply prevents Btrieve from flushing the pre-image buffers before each operation. It is the flushing of the pre-image buffers that takes up a lot of time.
If the pre-image buffer gets filled up (because a lot of pages are being modified) it will be flushed automatically. This is why AAM may still result in pre-image files being created.
FYI: Btrieve Status Code 22 on a STAT operation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Status Code 22 on a STAT operation
DOCUMENT ID#: FYI.A.3906
DATE: 14JUN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This FYI describes a common cause of a Status Code 22 (data buffer length error) on a Stat operation (15).
When a program issues a Stat operation (15), Btrieve returns the definition of a file -- the same information passed to Btrieve on the create. The structure passed to Btrieve for the Stat operation is similar to the structure passed for the Create operation. Many programmers use the same structure for the Stat as for the Create.
If a supplemental index is added, the Stat operation will return information about the supplemental index. This must be accounted for in the data buffer for the stat call.
For example the following structure creates a file with 3 key segments. If a supplemental index is added with one segment, the stat operation will return 4 key segment definitions. However, our structure can only accommodate 3. If we set the Data Buffer Length parameter to the Sizeof the FileSpec Structure, a status 22 will result.
// BTRIEVE STRUCTURES
struct KeySpec
{
int KeyPos;
int KeyLen;
int KeyFlags;
long KeyTot;
char KeyType;
char Reserved[5];
};
struct FileSpec
{
int RecLen;
int PageSize;
int IndxCnt;
long no_records;
int FileFlags;
char Reserved[2];
int Allocation;
struct KeySpec KeyBuf[3];
// make sure this is large enough
};
To avoid this, just make sure that the file specification structure has enough key segments to handle supplemental indexes that may have been added after the create.
FYI: Alternate Collating Sequence with WatCom C
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Alternate Collating Sequence with WatCom C
DOCUMENT ID#: FYI.A.3905
DATE: 14JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This FYI shows how to implement an alternate collating sequence in WatCom C.
An Alternate Collating Sequence (ACS) is used to redefine the ASCII collating sequence. An ACS is often used to make upper and lower case values equivalent for sorting purposes (in ASCII, upper case values comes before lower case values).
An ACS is defined during the create operation as a table following the key specifications. The following structure defines the ACS table:
struct alt_col_seq_type
{
char sign_byte;
char desc[8];
char ACS_table[256];
};
The standard key specification structure is used:
struct KeySpec
{
int KeyPos;
int KeyLen;
int KeyFlags;
long KeyTot;
char KeyType;
char Reserved[5];
};
The file spec structure contains the ACS table structure following the key specifications:
The ACS table is generated with a FOR loop. Each byte in the ACS table variable contains the alternate value to use as comparison in collating For example, an 'a' is ASCII 97. When an 'a' is encountered, we want Btrieve to treat it as though it was an 'A' (ASCII 65). Position 97 of the table contains a 65.
With ASCII, subtracting 32 from a lower case value will give the upper case value (97-65 = 32). In our FOR loop we are only interested in values between 97 and 122 (a to z). Our table contains the ASCII value except for ASCII values 97 to 122. These values are replaced with the ASCII value minus 32:
// GENERATE ALT COL SEQ
// the first byte must contain an AC hex
FileBuf.alt_col_seq.sign_byte = 0xAC;
// the next 8 bytes contains a descriptor
memcpy(&FileBuf.alt_col_seq.desc,"ACStable" , 8);
// the for loop creates the ACS hash table
for (i = 0; i < 256; i++)
{
if (i >= 97 && i <= 122)
FileBuf.alt_col_seq.ACS_table[i] = i - 32;
else
FileBuf.alt_col_seq.ACS_table[i] = i;
}
FYI: NetWork C for NLM's SDKa - SetDirectoryInfo
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWork C for NLM's SDKa - SetDirectoryInfo
DOCUMENT ID#: FYI.A.2615
DATE: 14JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
It has been found that the SetDirectoryInfo API causes the server to abend with a 'Invalid Semaphore passed to Kernel' error, when calling a REMOTE 286 server.
FYI: Stored Procedures in XQL/NetWare SQL v2.11 (VAP & NLM)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Stored Procedures in XQL/NetWare SQL v2.11 (VAP & NLM)
DOCUMENT ID#: FYI.A.1819
DATE: 14JUN91
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Has anybody had questions about how to nest stored procedures as well as pass parameters to the nested stored procedures? The two following examples define how this can and cannot be done.
Example One: This example will not return the data being asked for. It will always use the first two values passed in at the CALLER level. This is due to name association between the values internally and the caller's definition of the values. Caution: All the internal stored procedures must contain unique variable names. If they do not it appears that the called procedure will always use the first occurrence of the variable.
Step 1:
create proc t1 as
select name from test where name = @v1 or name = @v2
Step 2:
create proc t2 as
select name from test where name = @v1 or name = @v2
Step 3:
create proc t3 as
select name from test where name = @v1 or name = @v2
Example 2: This is the proper way to nest stored procedures. Each internal stored procedure has a unique variable name and it is defined at the CALLER level.
Step 1:
create proc t1 as
select name from test where name = @t1v1 or name = @t1v2
Step 2:
create proc t2 as
select name from test where name = @t2v1 or name = @t2v2
Step 3:
create proc t3 as
select name from test where name = @t3v1 or name = @t3v2
FYI: ClearConnectionNumber (C-Interface for DOS v1.2)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ClearConnectionNumber (C-Interface for DOS v1.2)
DOCUMENT ID#: FYI.A.3403
DATE: 12JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the current documentation for NetWare C Interface for DOS, the ClearConnectionNumber function states that it is a NetWare 286 specific call. This is incorrect, the ClearConnectionNumber call will work on any NetWare 2.x or 3.x server.
FYI: GetDirEntry (NetWare C Interface - DOS v1.20)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetDirEntry (NetWare C Interface - DOS v1.20)
DOCUMENT ID#: FYI.A.3323
DATE: 12JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetDirEntry function in the NetWare C Interface - DOS, version 1.20, returns incorrect information for the inheritedRightsMask under NetWare 3.x. The inheritedRightsMask is obtained from the reply buffer offset 98 instead of the proper offset 102. The line that needs changing in GETDIREN.C is shown below:
OLD ---> dirEntry->inheritedRightsMask = *( (WORD *)&replyBuff[98] );
NEW ---> dirEntry->inheritedRightsMask = *( (WORD *)&replyBuff[102] );
FYI: RespondToLocalQuery (NetWare C Interface - DOS v1.20)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: RespondToLocalQuery (NetWare C Interface - DOS v1.20)
DOCUMENT ID#: FYI.A.3322
DATE: 12JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Advertise function in SAP Services of the NetWare C Interface - DOS, version 1.20, will not respond to local queries properly if a server of the same type is on the internet, or if the Advertising station itself is very fast.
Currently the RespondToLocalQuery code does not check for only query types of 1 or 3. Due to this fact, it will respond to query types of 2, which are query responses, possibly it's own. When this happens the advertising servers respond to each other's query responses in an endless loop, or in the case of a fast server it can respond to itself.
The following code changes, in the RespondToLocalQuery function in the ADVERTIS.c source, should resolve the problem:
OLD
if(querySAP.serverType == thisServer)
{
NEW
define a local variable
WORD queryType;
queryType=IntSwap(querySap.queryType);
if( (querySAP.serverType == thisServer) &&
((queryType == 1) || queryType == 3))
{
FYI: GetSpecificServerInfo (NetWare C Interface - DOS v1.20)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetSpecificServerInfo (NetWare C Interface - DOS v1.20)
DOCUMENT ID#: FYI.A.3321
DATE: 12JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetSpecificServerInfo function, in the 1.20 version of the NetWare C Interface - DOS, fails if issued as documented. The serverType in the serverInfo structure passed as input to the call needs to be IntSwapped before the call is made.
The same holds true when the serverInfo structure is returned from the GetSpecificServerInfo call. The serverType field needs to be IntSwapped before displaying/using the value returned.
FYI: Btrieve / Opening files in read-only directories
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve / Opening files in read-only directories
DOCUMENT ID#: FYI.A.2305
DATE: 12JUN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Can you open a file in read-only mode if the file is in a directory where you only have read rights? The answer is NOT consistent!!
Please also note that in NetWare 2.x, read-only directories are treated differently than directories where you have read and OPEN rights!
***************************************
Btrieve VAP 5.15 patched to #16
***************************************
NW 2.x
Dir where you have Read & Scan rights
open mode status -2 (RO) 94 (permission error) 0 (norm) 94
--------------------------------------
NW 2.x
Dir where you have Read, Scan AND Open rights
open mode status -2 0 0 94
***************************************
Btrieve NLM patched to #16
***************************************
NW 3.x
Dir where you have Read & File scan rights
open mode status -2 0 0 94
**********************************************
Btrieve for DOS Networks v5.10a patched to #95
**********************************************
NW 2.x
Dir where you have Read & Scan rights
open mode status -2 12 0 12
-----------------------------------------------
NW 2.x
Dir where you have Read, Scan AND Open rights
open mode status -2 0 0 94
-----------------------------------------------
NW 3.x
Dir where you have Read & File scan rights
open mode status -2 0 0 94
FYI: Max # of open files with Microsoft C 6.0 and Btrieve v5.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Max # of open files with Microsoft C 6.0 and Btrieve v5.10
DOCUMENT ID#: FYI.A.2014
DATE: 12JUN91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This FYI only pertains to programs compiled with Microsoft C version 6.0.
The Btrieve for OS/2 documentation (page 3-2) states that "If the total number of handles your application requires is greater than 20, use the OS/2 DOSSETMAXFH() function call to increase the number of file handles OS/2 assigns to your application."
In reality the Microsoft C compiler by default allows 20 open files per process for single thread processes and 40 when compiling using the multithread or DLL libraries. When using the multithread or DLL libraries, the DOSSETMAXFH() function can be used to increase the number of file handles from 40 to a programmer specified value. When using the single thread libraries, to increase the file handles to greater than 20, the compiler startup code has to be modified, recompiled and linked with your program. This holds true for DOS and Windows as well as OS/2 programs compiled with Microsoft C.
Below I have included a section from the README.DOC that is shipped with Microsoft C 6.0 that explains how to modify the startup code.
Increasing the Maximum Number of Open Files
C 6.0 allows you to increase the maximum number of files that may be open for I/O (the default number is 20). To use this feature, you must be running either OS/2 or DOS version 3.3 or later. Use the procedures described in the remainder of this section to increase the maximum number of open files.
Increasing File Handles
To increase the number of file handles, edit the start-up source file CRT0DAT.ASM, which is provided in this release. Change the line
_NFILE_ = 20
so that _NFILE_ is set to the desired maximum. For example, to increase the maximum number of available file handles to 40, change the line as shown here:
_NFILE_ = 40
NOTE: Increasing the number of file handles allows you to use low-level I/O functions, such as open and read, with more files. However, it does not affect the number of stream-level I/O files (that is, the number of FILE * streams).
Increasing Streams
To increase the number of streams, edit the source file _FILE.C. Change the line
#define _NFILE_ 20 to set _NFILE_ to the desired maximum.
For example, to allow a maximum of 40 streams, change the line as shown here:
#define _NFILE_ 40
Increasing the number of streams allows you to use stream-level I/O functions, such as fopen and fread, with more files.
NOTE: The number of low-level file handles must be greater than or equal to the number of stream-level files. Thus, if you increase the value of _NFILE_ in the module _FILE.C, you must also increase the value of _NFILE_ in the module CRT0DAT.ASM.
Increasing the System Limit
To use more than 20 files at a time, you must increase the file limit imposed on your process by the operating system.
To increase the system-wide limit, increase the number of files available on your system as a whole by editing your system configuration file (CONFIG.SYS). For example, to allow 100 open files at a time on your system, put this statement in the configuration file:
FILES=120
To increase the process-by-process limit, you must also increase the number of files the operating system makes available to your particular process. To do this, edit CRT0DAT.ASM and enable the commented-out code that is preceded by the appropriate description.
In the DOS version of CRT0DAT.ASM, for example, the commented-out code appears as shown here:
; mov ah,67h
; mov bx,_NFILE_
; callos
In the OS/2 version of CRT0DAT.ASM, the code appears as a call to DOSSETMAXFH. Under OS/2, you must also enable the 'extrn DOSSETMAXFH:far' declaration that appears near the beginning of the file.
In either case, remove the semicolon (;) comment characters.
NOTE: Under OS/2, you must take into account the fact that each process has the potential to "own" open files. When planning how many open files to allow on a system-wide basis, take this into account.
Using the Modified Startup Files
After you modify CRT0DAT.ASM and/or _FILE.C, assemble or compile the file(s). The start-up MAKEFILE contains sample command lines to perform these jobs. Note that the object files will differ for OS/2 and DOS.
To use the new object files, either explicitly link your program with the new CRT0DAT.OBJ and _FILE.OBJ file(s), or replace the CRT0DAT.OBJ and _FILE.OBJ object(s) in the appropriate model of the C run-time library.
Multithread (MT) and Dynamic-Link Library (DLL) Libraries
By default, the C 6.0 MT and DLL libraries support 40 file handles and streams instead of 20, which is the single thread library default.
To increase the number of file handles (low-level I/O), simply issue a DOSSETMAXFH call from within your program. This increases the open file limit for the calling process.
To increase the allowable number of open streams, first make sure that the number of file handles is greater than or equal to the number of streams you want. Then rebuild module _FILE.C with the desired _NFILE setting (as described under the single thread description). Since the MT and DLL libraries are large model, be sure to compile _FILE.C with the /AL switch.
FYI: XQL v2.11 Turbo Pascal Interface
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL v2.11 Turbo Pascal Interface
DOCUMENT ID#: FYI.A.1724
DATE: 12JUN91
PRODUCT: XQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a problem with the definition of the xDDCreate primitive function in the Turbo Pascal interface that ships with XQL v2.11. The result is a status 24 (Page Size Error) when utilizing the optional bCreateParmsBuf parameter to specify Btrieve data file creation parameters. The interface can be corrected by making the following changes to the file XQLPDICT.PAS (18,132 bytes 08-24-90 9:07am):
Basically, the interface references two different variables that are spelled the same, but are of different case. Pascal is case-insensitive in regards to variable names, so changing the name of CREPARMS to CRPARMS in the xDDCreate function as described above will solve the problem.
FYI: SetNetWareErrorMode with MS BASIC
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetNetWareErrorMode with MS BASIC
DOCUMENT ID#: FYI.A.1513
DATE: 12JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I recently had a customer trying to use the SetNetWareErrorMode API call through a BASIC application. However, no matter what he set it to, the application would always terminate with a BASIC error code rather than the ABORT/RETRY message. SetNetWareErrorMode does not work correctly because MS BASIC is taking over the critical error handler and returning the appropriate BASIC error code whenever such an error occurs. The NetWare shell is not able to regain control when a critical error is encountered, therefore, the SetNetWareErrorMode API call has no affect when running under MS BASIC.
FYI: Btrieve 5.10 NLM and Unknown Bindery Object Type
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve 5.10 NLM and Unknown Bindery Object Type
DOCUMENT ID: FYI.A.3401
DATE: 07JUN91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Ever have someone run BSETUP.EXE on NetWare 3.x? If they select install, it will create a Bindery Object of BTRIEVE_SERVER and leave it there. This Bindery Object however can be deleted with the C Int or System call DeleteBinderyObject. Also don't rely upon the SECURITY.EXE program to display a correct Object Type. It shows as "BTRIEVE_SERVER unknown type 19200" however it's really type 75 (h4b) and must be reference that way.
FYI: creat() Bug in CLib v3.11 on NetWare v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: creat() Bug in CLib v3.11 on NetWare v3.11
DOCUMENT ID#: FYI.A.3114
DATE: 07JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The file access mode on the creat() API is different depending on whether the file exists. If a file exists, the mode is O_WRONLY. If the file doesn't exist, the mode is O_RDWR. I'm not sure which way is correct, so I've turned in a bug, #1065. As an aside, if you use open(), with O_CREAT | O_TRUNC | O_RDWR, you will achieve a consistent behavior...
FYI: GetBinderyObjectDiskSpaceLeft Bug in CLib v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetBinderyObjectDiskSpaceLeft Bug in CLib v3.11
DOCUMENT ID#: FYI.A.3113
DATE: 07JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
GetBinderyObjectDiskSpaceLeft() returns invalid numbers for both v3.1 and v3.11 of NetWare and CLIB. On 3.11, you can workaround by doing the following APIs:
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: C Int for DOS v1.2
DOCUMENT ID#: FYI.A.2901
DATE: 07JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
At the C/DOS/CLASS, we were running on NetWare 3.10, I have discovered the following:
AddTrusteeToDirectory(BYTE directoryHandle,char *directoryPath, long
trusteeObjectID,BYTE trusteeRightsMask);
The above function will return 0 (0x00) SUCCESSFUL, in the NetWare 386 environment, however, when you go to check the results with SYSCON, you will find that the function did not add your user to the directory. Why don't we send return values that is not equal to zero, if the function did not accomplish its task?
On the 386 NetWare Environment you must use SetTrustee function to add certain user to a directory.
FYI: NWC4DOS & TC PRJ Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NWC4DOS & TC PRJ Files
DOCUMENT ID#: FYI.A.1309
DATE: 07JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
FYI - Compiling w/i the TC Environ. using NW C Interface for DOS
Compiling and linking an application within the Turbo C Environment using the NetWare C Interface for DOS (NetWare APIs) can cause some problems to new users of the NetWare APIs. The most common problem new users have is the linking error 'Undefined Symbol' returned for every NetWare API function call made. The most common reason for this problem has to do with the absence of a project file. A project file is used by the environments 'Compile - Make EXE' option as a "recipe" for what is to go into an EXE -- source files (.C), object files (.OBJs) and libraries (.LIBs). A project file must be created before an application using the NetWare APIs will resolve these symbols. For example, MYPROG.C uses the NetWare Communication Services APIs. The application requires a preassembled OBJ to be included. Furthermore, the application will be compiled and linked in small model.
Under Turbo C 2.0, a project file is created using either its built-in editor or another ASCII editor. The project file created for MYPROG.C has the name MYPROG.PRJ and contains the following.
MYPROG.C
OTHER.OBJ
SNIT.LIB
To compile and link this application within the environment, the 'Project' option would be chosen from the menu bar and the name of the project file entered. Next, the 'Compile' option would be chosen and, from its menu, the 'Make EXE' option picked. If the compile and link are successful, MYPROG.EXE will be created.
Under Turbo C++ 2.0, the project file is created from within the environment. Choose the 'Project' option from the menu bar. From this point, assorted prompts guide you to creating a project file. Note that project files created under Turbo C 2.0 are incompatible with Turbo C++ 2.0. Turbo C++ comes with a convert utility, however, which will rebuild your original project files to conform to the C++ specifications.
FYI: Completion Code 156
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Completion Code 156
DOCUMENT ID#: FYI.A.3402
DATE: 04JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If when you are accessing queues no matter what type, you receive a status 156 (Invalid_Path), chances are the queue's directory is missing from SYS:System. Under this directory is a subdirectory named to match the queue's object ID with a .QDR extension. This is where the job files reside.
Look for this when sites go from NetWare v2.xx to v3.xx.
FYI: MATHLIB vs MATHLIBC NLM's / NetWare SQL v2.11 NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: MATHLIB vs MATHLIBC NLM's / NetWare SQL v2.11 NLM
DOCUMENT ID: FYI.A.2502
DATE: 04JUN91
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
MATHLIB and MATHLIBC NLM's are distributed with NetWare 3.x. What is the difference between these two NLMs?
MATHLIBC.NLM is intended for servers without math coprocessors. It contains the floating point math routines required for emulation.
MATHLIB.NLM is intended for servers with math coprocessors. It contains the 80387 instructions for floating point calculations.
Yes, the names appear to be counterintuitive: you can remember which is which by remembering that the added "c" corresponds to the added routines to emulate the math coprocessor.
FYI: CINT DOS v1.2, VAPs and the 'Ö'.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CINT DOS v1.2, VAPs and the 'Ö'.
DOCUMENT ID#: FYI.A.3112
DATE: 03JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you try to open or get file information on a filename containing some special characters, it will fail from a VAP. We tried the 'Ö', there may be others as well. The version of NetWare doesn't seem to matter, as we reproduced on a Bridge that was logging in to remote servers.
FYI: BROLLFWD's /D Parameter (Btrieve v5.15)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: BROLLFWD's /D Parameter (Btrieve v5.15)
DOCUMENT ID: FYI.A.1108
DATE: 03JUN91
PRODUCT: Btrieve
PRODUCT VERSION: 5.15)
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With the release of Btrieve NLM, VAP, and OS/2 v5.15, a /D parameter has been added to BROLLFWD. The /D parameter has only been documented in the Btrieve for OS/2 IOM, July 1990 Edition. The NLM and VAP IOM's shipped with the v5.15 release have not been updated to include information about this additional parameter (NLM - January 1991 Edition, and VAP - December 1990 Edition). From the OS/2 Btrieve IOM, here is a description of the purpose of the /D parameter and its usage.
'The /D parameter specifies the data buffer size that BROLLFWD will allocate for Btrieve operations. The size is given in kilobytes. The default size is 8KB. If you have record sizes over 8KB, you should round your largest record size up to a multiple of 8KB and specify that size for this option. For example, /D:32.'
There should be a change made to the documentation to reflect the fact that the number specified with the /D can be based on 1K increments, rather than on 8K increments. Also, the minimum for this parameter should be 1K and the maximum should be 64K.
This BROLLFWD parameter first appeared with the v5.15 release of the Btrieve NLM and VAP. It also first came out with the v5.10 release of Btrieve for OS/2. Btrieve for DOS, currently on the v5.10 release, does not include the /D parameter.
FYI: NetWare v3.11 upgrade and Btrieve v5.15 NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NetWare v3.11 upgrade and Btrieve v5.15 NLM
DOCUMENT ID: FYI.A.1008
DATE: 03JUN91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.15
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you speak with anyone who is getting the error....
"Unable to open Btrieve transaction file"
This may occur when they attempt to load the new BTRIEVE.NLM v5.15 with BSTART.NCF and they have just installed the upgrade to NetWare v3.11 from v3.10a. According to LANSWER, running the upgrade from v3.10a to v3.11 shouldn't cause this to occur. However, it could be related to an unusual disk driver.
The fix is simple: have them check the file flags on the BTRIEVE.TRN file in the SYSTEM directory. They may find that they are set to RWTDR, which stands for Read, Write, Transactional, Delete Inhibit, and Rename Inhibit. The file should be flagged Read, Write, Transactional (RWT). Once the flags are set properly then the BSTART.NCF file will run fine and the NLMs will load.
FYI: Corrupted Btrieve v5.x files and Arcnet
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Corrupted Btrieve v5.x files and Arcnet
DOCUMENT ID: FYI.A.1007
DATE: 03JUN91
PRODUCT: Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This is for developers who are running in an Arcnet environment and complain about their Btrieve data being corrupted.
Have them check to see if they are using the SMC Arcnet 16 Bit card, model #PC500FS. It does cause the data to become corrupted. The Btrieve file access paths are all ok but, the data itself is bogus/corrupted. The SMC Arcnet 130 8 bit card works fine. This is a Novell certified board. LANSWER is looking into this. There are no Btrieve non-zero status codes returned. You will notice your data is not correct when accessing the records.
FYI: LoginToFileServer Problem in CLib v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LoginToFileServer Problem in CLib v3.11
DOCUMENT ID#: FYI.A.3111
DATE: 01JUN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
On NetWare v3.11, if the 'REPLY TO GET NEAREST SERVER' option is set to off, an attempted LoginToFileServer() to any remote server will fail in your NLM. We don't know of any workaround, other than to set that option back on.
FYI: SetEntry - NSType
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetEntry - NSType
DOCUMENT ID#: FYI.A.3320
DATE: 31MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This is a follow-up to my previous FYI on this issue for the NetWare C Interface - DOS, version 1.20. The NSType field defines which name space you are setting with the SetEntry function. Currently the NFS (UNIX), FTAM (OSI) and HPFS (OS/2) name spaces, available with NetWare 3.11, are NOT supported. This means that they cannot be obtained, or set, from a client process. CLIB does support these name spaces, so a backup software developer writing an NLM will be able to get/set the information for the new name spaces.
FYI: Windows SDK 1.2.1 - and Communications
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK 1.2.1 - and Communications
DOCUMENT ID#: FYI.A.2614
DATE: 31MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Just a fair reminder that when carrying out IPX/SPX communications, each IPXInitialize, & SPXInitialize should have a matching IPXSPXDeinit call for each IPXTaskID. What this does it release resources allocated at the NWIPXSPX.DLL level for each IPXTaskID.
FYI: Another Shipping NetWare SQL Front End
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Another Shipping NetWare SQL Front End
DOCUMENT ID: FYI.A.8101
DATE: 30MAY91
PRODUCT: NetWare SQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Just to keep everyone up to date on shipping NetWare SQL front ends, here is a new one:
Logic Works, Inc.
601 Ewing Street
Suite B7
Princeton, NJ 08540
609-683-0054
609-924-0029 FAX
Product Name: ERwin/ERX
Description: ERwin is an entity relationship modeling tool that helps you build a logical model of your database to ensure efficiency and performance. Supports both SQL code generation and reverse engineering for NetWare SQL databases.
Environments: Windows
They are going to start shipping this product on Monday of next week.
If you have any additional questions or would like to see a demo, please let me know.
FYI: Network C for NLMs Release A Linker User's Manual
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLMs Release A Linker User's Manual
DOCUMENT ID#: FYI.A.3804
DATE: 30MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Documentation Error Pg 3-31
The Version Directive has not been defined correctly. It mentions that the major_version should be greater than or equal to 100, and the minor_ version should be in the range of 27 to 99. That is not true. These values are user defined. Also the syntax of this option has not been mentioned correctly. The correct syntax is as follows:
OPTION VERSION = major_version.minor_version [.revision]
FYI: GetVolumeStatistics bug in CLIB v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetVolumeStatistics bug in CLIB v3.11
DOCUMENT ID#: FYI.A.3110
DATE: 30MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
GetVolumeStatistics() is truncating the availableBlocks field to a WORD. If you have a volume with more than 64K available blocks, the information returned will be incorrect. This is applicable to NetWare v3.11 only.
FYI: Windows SDK 1.2.x and the SPX Completion Codes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK 1.2.x and the SPX Completion Codes
DOCUMENT ID#: FYI.A.2613
DATE: 30MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here are two completion codes that may be of interest to anybody doing SPX communications in Windows.
0xF1 - incorrectly initializes IPX.
0xF3 - not free ECB's available in low memory (i.e. under the NWIPXSPX.DLL control).
FYI: SetEntry - NSType Field
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetEntry - NSType Field
DOCUMENT ID#: FYI.A.3319
DATE: 29MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The SetEntry function in the NetWare C Interface - DOS can return an undocumented error status of 198. This indicates an INVALID_NAME_SPACE. This usually means that you have not initialized the NSType field in the NWFILE_ENTRY structure. At this time the valid entries in this field are 0 - DOS, 1 - Macintosh.
FYI: BSPXCOM - Bad connection ID
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: BSPXCOM - Bad connection ID
DOCUMENT ID: FYI.A.2011
DATE: 29MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The error 'BSPXCOM - Bad connection ID on send' means that Btrieve has sent a message to a workstation that has been timed out by the NetWare watchdog. SPX will time out if there is no response from the workstation within 30 seconds. This can occur if the workstation has gone down in the time that a request was sent to Btrieve and the time Btrieve responded. If network traffic is very heavy and packets are delayed, this can also cause the problem. Basically any delay in transmission of packets can cause the error message.
This information is in regard to all versions of Btrieve NLMs.
FYI: Btrieve NLM Status 96
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve NLM Status 96
DOCUMENT ID: FYI.A.1915
DATE: 24MAY91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here is a brief description of a problem reported to me by a customer. He was writing an NLM that was making calls to the Btrieve NLM v5.10 loaded at his server. He was using the 'btrvID' symbol to make the call. After 30 "connects and disconnects" from the DOS workstation to the server, Btrieve returned a status 96 (Communications Environment Error). If he used the 'btrv' symbol, everything worked fine.
The fact that 'btrv' worked and 'btrvID' failed, narrows down the problem to the contents of the 'ClientID' parameter that is part of 'btrvID' but not 'btrv'. As mentioned in my earlier FYI on this issue, the 'ClientID' parameter is made up of 16 bytes of 'char'. The first 12 bytes are NOT to be used by the programmer/developer; they are used by Btrieve. The next 2 bytes are an identifier for the client NLM. The last 2 bytes are supposed to be filled by the NLM with a unique value to distinguish one client from another.
One valid value to put into the last 2 bytes is the connection ID for the connection between the client and the server. However, whenever a unique ID is passed in the last 2 bytes of 'ClientID', Btrieve establishes a session. If the current connection is reset and a new connection is made, the connection ID will be different from the first one. Therefore, a new Btrieve session will be established. Once the maximum number of configured sessions has been reached, Btrieve will return a status 96.
The proper way to get rid of this problem is to do a RESET (Btrieve operation 28) before exiting the client NLM. This resets all the resources for the current client, and also resets the Btrieve session. This is required of all NLMs communicating with BTRIEVE.NLM. It is not documented in the manuals that discuss this issue.
The documentation for status 96 in all manuals is incorrect. It says SPX must be reloaded; but what really needs to be done is to go through BSetup and increase the number of concurrent Btrieve sessions. This will change both Btrieve's '/s' parameter and BSPXCOM's '/s' parameter. By default, Btrieve's '/s' parameter is configured to be twice the value of BSPXCOM's '/s' parameter. (BSPXCOM's '/s' parameter gets the value entered in BSETUP) The reason for this is to allow a minimum of the same number of NLM calls to Btrieve as the number of client calls.
Now, to resolve some other issues. Btrieve fills the first 12 bytes of 'ClientID' with the address of the server running the client NLM. In Btrieve v5.10, BROUTER.NLM was the entity that was doing this task. If Brouter was not loaded, then no other servers were being accessed by Btrieve. Therefore, the first 12 bytes did not need to be filled - hence BTRIEVE.NLM did not fill them. However, in Btrieve v5.15, BROUTER.NLM and BTRIEVE.NLM, both, fill the 12 bytes. It's no big deal - just thought you might like to know.
One last thing: customers can call us and reserve identifiers that get put into the 13th and 14th bytes of 'ClientID'. This would guarantee, in some way, that Btrieve will not be confused by two or more NLMs using the same identifier.
FYI: Btrieve Status 98
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve Status 98
DOCUMENT ID: FYI.A.1914
DATE: 24MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In general, Btrieve's errors can be generated at two times: when a request is on its way to/from the Btrieve engine. When an erroneous request is on its way TO the Btrieve engine, the error will be detected by the engine. When an erroneous request has been processed, and is on its way FROM the Btrieve engine, the error will be detected at the communications level.
The status 98 (Internal Transaction Error) can only be returned when the preceding Btrieve operation generated an error when it was on its way TO the Btrieve engine. Hence, a preceding status 22 (Data Buffer Length) would cause a status 98 on the following operation. Note: status 22 is an "engine-level" error. A preceding status 97 (Data Message Length) would not cause a status 98 on the following operation. Note: status 97 occurs at the "communications-level" and is not "seen" by the Btrieve engine. Can the status 98 be returned when using Btrieve for DOS?
Another explanation for the status 98 would be to say that if an application tries to perform an operation which is illegal, or logically inconsistent, then the 98 will be returned on the following call. Examples of illegal operations are those which return a status 5 (Duplicate Key Value), among others. If the operation being performed is legal, but simply not possible at the time it was requested (a later request for the same operation would be successfully processed) and a non-zero status is returned, for example status 85 (File in Use), then the following operation will not return the status 98.
The status 98 indicates that an application was inside a transaction and an error occurred; that is, a non-zero status code was returned from a Btrieve application. To recover from this the Abort Transaction (operation 21) has to be performed.
Btrieve programmers may think that they can make certain Btrieve calls, and depending on the outcome of these calls, make other calls. In other words, trap for a particular (non-zero) status code and issue another Btrieve call. This is true, except it cannot be done inside a transaction.
Following is an example of this.
Begin Transaction
Btrieve Insert operation
If Status = 0
Then ...Statement A...
Else If Status = 5
/* inserting duplicate value along non-duplicate key path */
Then ...Statement B...
.
.
.
End Transaction
A solution to this would be to add a COUNTER field to the record. If the COUNTER is 0, then insert the record. (Like a flag.)
This problem was reported with the Btrieve VAPs v5.11. According to the customer Btrieve v5.00 did not behave in this manner.
Depending on the availability of time, I will compile a list of all non-zero status codes that will cause the return of status 98 on the following operation.
FYI: Btrieve Status 79
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve Status 79
DOCUMENT ID: FYI.A.1913
DATE: 24MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
WARNING: This FYI contains no conclusive evidence on the possible/impossible causes of Btrieve's status 79. It is merely a discussion of my experience; something you might want to keep in the backs of your minds.
Recently, I received a call from a customer who was getting the Btrieve Status 79 (Internal Programming Error) when trying to open a Btrieve file. His application had been working just fine until the night before when he got the Btrieve status 95. So, he went through BSetup and reconfigured Btrieve, and reinstalled the Btrieve NLMs (v5.11). This resulted in the status 79. Before going any further, let me say that the problem went away miraculously. I could not find any documentation on this, so I am writing this FYI.
The peculiar thing about this incident was that only one user at the customer site was having the problem. Other users could use their own sets of Btrieve files, or even the particular users set of files - and the problem would not manifest itself. Also, applications similar to the 79-prone-application seemed to run without any glitches. Reconfiguring Btrieve to the settings prior to the status 95 made no difference in the status 79 problem. According to development, Btrieve had gotten into a section of code that it was not expected to get into. Obviously, as one might expect, B.EXE did not reproduce the problem. In other words, the causes of the error had been narrowed down to: ANYTHING!
Basically, the application used two sets of files. One set (COMMON) was accessed by all the users running the application, and was contained in a directory all the users had rights to. The other set (LOCAL) was a copy of the COMMON set that all users of the application had in their work directories. The sequence of operations that resulted in the 79 is not worth mentioning. However, this is how the problem was (accidentally) solved.
The application was opening files from LOCAL and COMMON. The error was returned on opening the COMMON file. The customer redefined the LOCAL file (I don't know why), and the problem went away! The file description was changed from:
94 bytes of various key types.
41 bytes of Zstring
41 bytes of Zstring
6 bytes of Zstring
4 bytes of Integer
4 bytes of Integer
4 bytes of Integer
to:
94 bytes of various key types (same as before)
41 bytes of Zstring
4 bytes of Integer
41 bytes of Zstring
4 bytes of Integer
6 bytes of Zstring
4 bytes of Integer
I guess this was one of those freak incidents where an error appears out of nowhere, lingers around for awhile, and then disappears into nowhere. If any of you ever face this creature, just hang in there. I'm sure it will make itself scarce.
FYI: Access Server Timers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Access Server Timers
DOCUMENT ID: FYI.A.1912
DATE: 24MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When a workstation loses its LAN session with the FileServer, and has Btrieve files open at the server, the files will remain open for approximately 15 minutes. For workstation based Btrieve, if the files need to be closed before then, FCONSOLE can be used to reset the original session, thereby releasing the files. For server based Btrieve VAP, B ACTIVE, B RESET xx should be used to close the Btrieve files. For server based Btrieve NLM, BCONSOLE Userlist <delete> (at the server) should be used to release the Btrieve files for the workstation.
When using the Access Server, (in the event of the loss of a session), two timers come into play: Inactivity Timer and Reconnect Timer. Here is the information I received from development. The Inactivity Timer checks for session activity; if there is none, the session is logged out (stopped). The Reconnect Timer is the amount of time available to the session to reconnect itself, otherwise the connection will be lost (reset). If the user dials in before this timer expires, he/she can continue where they left off.
FYI: Network C for NLMs SDK 2.0 Documentation (CLIB 3.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLMs SDK 2.0 Documentation (CLIB 3.11)
DOCUMENT ID#: FYI.A.3803
DATE: 23MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
GetDiskUtilization () - fourth parameter, usedFiles, is documented as a pointer to WORD. It should be a pointer to LONG.
Fifth parameter, usedBlocks, of the same function is documented as a pointer to WLONG. It should be a pointer to LONG.
FYI: Network C for NLMS SDK V.2.0 - Documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLMS SDK V.2.0 - Documentation
DOCUMENT ID#: FYI.A.3802
DATE: 23MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Most of the functions return values have been documented both as decimals as well as their equivalent error message. In order to use the error message in the code, niterror.h file (where all the error macros have been defined) should be included in the source code.
FYI: IPX EntryPoints
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPX EntryPoints
DOCUMENT ID#: FYI.A.3318
DATE: 23MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There have been a few customers asking if there were any NEW IPX entry points in the last few weeks. Per Drex Dixon (Provo - He is part of the IPX Development Group), there are none. The recommended procedure is still to call IPX by making a far call to the IPX interface.
The same customer said that he noticed that with the 3.x release of IPX there were a lot more calls being made through INT 2F than before. Per Drex, this is due to IPX calling IPXRelinquishControl. This was added for Windows compatibility in the 3.x versions of IPX.
FYI: Task Mode / EOJ
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Task Mode / EOJ
DOCUMENT ID#: FYI.A.3317
DATE: 23MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I had a customer problem that may prove interesting to some of you. His application opened a file and then spawned Windows. It then loaded multiple Windows' applications and returned to the parent process. Upon returning to the parent, the application attempted to access the file opened before the spawn, but received an error indicating an invalid handle. The handle should have been valid, but when Windows terminated the NetWare shell thought that all tasks for the process had completed and shut down all of the network resources.
By using either the SetEndOfJobStatus API or the EOJ=OFF SHELL.CFG option the customer was able to resolve the problem. Setting TASK MODE = 4 or using the task mode API also allowed his program to function properly. However, it has been recommended to use EOJ over TASK MODE whenever possible. This is because some application cleanup can still be performed when EOJ is turned off, but none is done if TASK MODE is set to 4.
One note, there is the possibility of NetWare Resources (i.e Semaphores, Files) being left in use when the above is implemented. This will be eventually released by WATCHDOG.
FYI: Wait locks and Btrieve for Windows (All versions)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Wait locks and Btrieve for Windows (All versions)
DOCUMENT ID: FYI.A.2010
DATE: 23MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With Btrieve for Windows, wait locks (+200 and +400) are interpreted as nowait locks (+100 and +300). Wait locks are not implemented because a Btrieve Windows application waiting on a lock on a local file to be released by another session will hang the sessions. The sessions will hang because the session that is waiting for the lock cannot release control back to the session that has the lock so it can release the lock. If an application issues a +wait lock operation to Btrieve for Windows and the record to be locked is already locked, Btrieve will return a status 84 (record in use) just as if a +nowait lock was issued.
A scheme, such as the following, should be implemented in the Btrieve Windows program code when using locks:
while ( (CallBtrv (ops)) == 84)
yieldControl ();
The programmer should implement a routine that will yield control back to Windows. This routine can then be called between each test for the status 84 (record in use). This will allow the session holding the lock processing time to release the lock.
FYI: Btrieve Update and Delete with Get Key
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve Update and Delete with Get Key
DOCUMENT ID: FYI.A.2009
DATE: 23MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Btrieve does not allow Update (op 3) or Delete (op 4) operations after a Get Key operation (+50). Before Btrieve does an update or delete, it has to compare the current usage count of the data page it is about to modify with the usage count of the data page when the record was read. In order to get the usage count when the record is read, the data page has to be read. Since a Get Key (+50) operation does not read the data page, there is no usage count for Btrieve to compare with on the update or delete. So, the update or delete will fail because Btrieve cannot do its passive concurrency conflict checking without the compare.
When the update or delete fails, a status 8 (invalid positioning) will be returned. Don't let this confuse you when you look at the patches for Btrieve 5.10. Patch #24 states that it corrects a problem of the positioning not being updated correctly on Get Key operations. This patch only corrects a problem so that Btrieve can do a Get Position (22) operation after a Get Key operation.
This FYI is in regard to all versions/platforms of Btrieve.
FYI: OS/2 1.3 Requester DLL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: OS/2 1.3 Requester DLL
DOCUMENT ID#: FYI.A.1619
DATE: 23MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The OS/2 SDK for the 1.3 Requester no longer ships with any DLL's. These DLL's are now shipped with the 1.3 Requester only. The developer may NOT distribute the DLL's, and may only distribute the .LIB files by linking them into his application.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetVolUsage
DOCUMENT ID#: FYI.A.1618
DATE: 23MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There are 2 problems with GetVolUsage in the C Interface-DOS v1.2 libraries.
On a NetWare v3.x server, GetVolUsage returns 0 for both valid and invalid volumes (This was tested with v3.1 and v3.11). The problem is actually in the NCP (NetWare Core Protocal) call. The NCP call always returns status 0.
A workaround for this is to modify the source for this call (found in ...\SOURCE\CLIENT\GETVOLUS.C) to check for a blank volume name. Add a line to the code as follows:
┌───> if (volInfoV30.volName[0] == 0) return(VOLUME_DOES_NOT_EXIST);
│ .
│ .
│ .
│ }
└─ Add this line
This will check if the volume name is blank and return that the volume does not exist.
On a NetWare v2.x server, GetVolUsage cuts off the first 2 characters of the volume name, which throws off the alignment of the remainder of the structure. To fix this, change startingBlock[4] to startingBlock[2], in the structure definition VOL_INFO_V2X, as follows:
typedef struct
{
BYTE systemIntervalMarker[4];
BYTE volumeNumber;
BYTE logicalDriveNumber;
BYTE blockSize[2];
BYTE startingBlock[4]; <─────────┐
BYTE totalBlocks[2]; │
BYTE freeBlocks[2]; │
BYTE totalDirEntries[2]; │
BYTE freeDirEntries[2]; │
BYTE actualMaxUsedDirEntries[2]; │
BYTE volHashed; │
BYTE volCached; ├───── Change from [4] to [2]
BYTE volRemovable; │
BYTE volMounted; │
BYTE volName[16]; │
} VOL_INFO_V2X; │
│
BYTE startingBlock[2]; <─────────┘
FYI: Network C for NLMs - SDK release a - documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Network C for NLMs - SDK release a - documentation
DOCUMENT ID#: FYI.A.3801
DATE: 22MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
BeginThreadGroup () ;
The Return Values section of BeginThreadGroup () states that this function "returns new thread groups if successful". It should mention that this function returns new thread groups ID if successful.
FYI: SCANBIND Bug in NWCNLMs vSDK(a)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SCANBIND Bug in NWCNLMs vSDK(a)
DOCUMENT ID#: FYI.A.3109
DATE: 22MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a program called SCANBIND that ships with the Network C for NLMs SDK(a) toolkit that can abend the server under certain conditions. There is an uninitialized variable called "nonZeroRow" in the function DisplayPropertyValue() that needs to be initialized to zero to correct the problem. The cases that we know of that abend the server are 1) if PATCH31 is loaded on v3.1, and 2) if PROTECT is loaded on v3.11. There might be other cases as well. This example has been in all previous versions of this toolkit.
FYI: Btrieve Accelerated Open Mode
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve Accelerated Open Mode
DOCUMENT ID: FYI.A.2008
DATE: 22MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With Btrieve for DOS, if a file is open in accelerated mode, no other application can open the file. Yes, that is right, if a file is open in accelerated mode, it cannot be opened again in any mode - not accelerated nor read-only.
With the Btrieve VAP or NLM a file can be opened multiple times in accelerated mode. But, if a file is open in accelerated mode all subsequent opens must be in accelerated mode.
FYI: Valid Filename Formats on a Btrieve Open
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Valid Filename Formats on a Btrieve Open
DOCUMENT ID: FYI.A.2007
DATE: 22MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetWare Btrieve (the VAP or NLM) will accept the following formats as valid filenames in the keybuffer on an open operation.
<server>\<vol>:<path>\<file>
\\<server>\<vol>\<path>\<file> /* That's right - no colon */
<vol>:<path>\<file>
<drive>:<path>\<file>
In the second case, both slashes before the server must point in the same direction and the slash without the colon is required before the path. In all other cases a '\' may be added before the path and the '\''s can be substituted with '/''s.
With Btrieve for DOS, only the last format is valid.
FYI: Btrieve NLM - Status 91
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve NLM - Status 91
DOCUMENT ID: FYI.A.1911
DATE: 22MAY91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Normally, when one encounters the Btrieve status 91, either the server is down, or Btrieve has not been loaded at the server. However, there can be other reasons for getting a status 91.
From my understanding, document management systems that use Btrieve (like PC-DOCS) have strict requirements in terms of the setup (configuration) of Btrieve at the server. Using Btrieve NLMs v5.10, one of my customers experienced the problem where their setting for the number of concurrent SPX sessions (the /s load parameter for BSPXCOM.NLM) was set to 15 (default). PC-DOCS requires this value to be 250! They state this in their documentation, but users may not be aware of this. So if any of you run into a status 91, remember to check to see if any kind of document management system (PC-DOCS in particular) is in use.
FYI: Windows Swap Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows Swap Files
DOCUMENT ID#: FYI.A.1617
DATE: 22MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Windows 3.0, running under Enhanced mode, allows two kinds of swap files. Temporary and fixed.
Temporary swap files are created when you start Windows and removed when you exit Windows. If you exit Windows "dirty" (i.e. re-boot or lock-up) the temporary swap file is not deleted. It will be removed the next time you start Windows, though, as long as you haven't changed your settings. The following settings in the SYSTEM.INI file (under [386Enh]) affect temporary swap files:
Paging=yes
PagingDrive=F:
MinUserDiskSpace=1024
MaxPagingFileSize=1024
Paging tells Windows whether it can use temporary swap files and PagingDrive tells Windows which drive the temporary swap file resides on(in this case F:). The MinUserDiskSpace tells Windows how much free disk space to leave after the temporary swap file is created (in this case, you will always have 1MB of disk space free when you start Windows, unless you had less than 1MB to start with). The MaxPagingFileSize tells Windows how large its allowed to make the temporary swap file (in this case, 1MB). It is not recommended that the temporary swap file reside in a RAM disk, as this space is better used by Windows directly, and, assigning a swap file to a network drive lowers network performance by increasing server workload and LAN traffic. In addition, when Windows creates a swap file, it creates the file all at once. Under NetWare, this space is then filled with zeros as a security measure (which can't be turned off). This activity also lowers network performance.
Permanent swap files must be set up using the SwapFile utility, but are much faster than temporary swap files. The SwapFile utility resides in the Windows directory and must be run under Windows in REAL mode. To do this, start Windows with WIN /R, pick RUN from the file menu in program manager, type in swapfile, and hit enter or click on OK. NO other Windows programs should be running, including any screen blankers, etc. This is a fully interactive utility that lets you specify where your swap file resides and how large it should be. It also allows you to delete the existing (if any) permanent swap file. The swap file is created only on contiguous blocks of disk space. Therefore it is wise to "compact" your hard disk before running SwapFile. SwapFile will only allow local hard disks to be used as Windows must access the swap file directly (bypassing DOS). The permanent swap file actually consists of two hidden, read-only files: SPART.PAR and 386SPART.PAR in the root directory of the specified swap drive.
When Windows runs in either standard or real modes, it does not use the above "style" of swap files. Instead, it creates application swap files. The location of these application swap files is configurable by changing the following parameter under the [NonWindowsAPP] section of the SYSTEM.INI file:
SwapDisk=c:\temp
In this case, Windows would place the application swap files on drive C: in the \temp directory. Application swap file names begin with ~WOA. This can also be set with a TEMP environment variable, which overrides the SYSTEM.INI setting:
SET TEMP=c:\temp
FYI: Removing Directories
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Removing Directories
DOCUMENT ID#: FYI.A.1616
DATE: 22MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you remove a directory out from under someone, the results will vary depending on the version of NetWare you are running on. For example, if station A's current directory was SYS:TEMP (and TEMP had NO files in it) and station B used the command:
RD \TEMP
the behavior (and return) of the DOS remove directory would be different on a 2.x server vs a 3.x server:
NetWare v2.x
Under NetWare v2.x, station B would receive the error message:
Invalid path, not directory,
or directory not empty
and nothing would happen to the directory.
NetWare v3.x
Under NetWare v3.x, station B would receive NO error message and the directory would be deleted. Station A, if at a DOS prompt, would still be at a DOS prompt until they hit return or tried to run a program. Then, they would get the error message:
Current drive is no longer valid>
and would then need to type in a valid drive letter.
I checked with LANSWER and they informed me that the change in NetWare v3.x was due to enhancement requests to be able to remove empty directories out from under people. So, I asked them to "enhance" NetWare v2.x to react the same and for both versions to allow this "feature" to be changed. I'll let you know if this ever happens.
FYI: Error creating bindery files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Error creating bindery files
DOCUMENT ID: FYI.A.1604
DATE: 22MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a confirmed problem with NetWare v3.1 and Btrieve that can be the cause for the message "Error creating bindery files" at the file server or for users not being able to log in because the bindery is closed or for programs not being able to read/write/create bindery information. The problem is in the OS, but shows up consistently when BTRIEVE.NLM is loaded. If, while the Btrieve NLM is inside a transaction, the Bindery is CLOSED and OPENED, the bindery will no longer be able to be accessed again, until the server is downed. This occurs whether or not the Btrieve file has been flagged transactional. Btrieve developers explained that this is because, when the NLM receives a TTSBeginTransaction request, it makes an OS TTSBeginTransaction call, whether or not the file is flagged transactional.
The possible reason behind this problem is not known, although it seems the OS is losing track of whether it has the bindery open or not. This theory is backed up by the fact that the bindery files are, in fact, listed as open by connection 0, task 1. This is the normal status for these files when the bindery is available. When the bindery is CLOSED, the files are not open by any connection (unless a connection does an explicit open on one of them).
The official word to pass on to customers with this problem is that the problem has been fixed in NetWare 3.11. You may also suggest the following workaround:
1) DO NOT run backup software while BTRIEVE.NLM is processing transactions (ie. no BEGIN TRANSACTION was run from a workstation). A simpler answer is not to run Btrieve while running backup software that backs up the bindery.
2) Repeat 1...<grin>
If the customer is calling in because they've done #1 above, have them down the server and bring it back up again. This should restore everything back to normal. If it doesn't, and they still cannot log in, have them run VREPAIR (at the server type LOAD VREPAIR) and repair volume SYS:.
FYI: Print Server Subdirectory Not Deleted In PCONSOLE 1.51
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Print Server Subdirectory Not Deleted In PCONSOLE 1.51
DOCUMENT ID#: FYI.P.9522
DATE: 21MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: After deleting print server, the print server directory is not being deleted.
ISSUE/PROBLEM
When a queue or print server is created through PCONSOLE, a subdirectory with the queue/print server ID is also created under directory SYSTEM. When the queue or print server is subsequently deleted the associated subdirectory should also be deleted. With PCONSOLE 1.51 the queue subdirectory is correctly deleted but the print server subdirectory is not.
SOLUTION
The newest version of PCONSOLE v1.52 fixes this problem. This is in PUTIL2.ZIP in NOVLIB 06.
FYI: Borland C++ Warnings with Turbo C interface
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Borland C++ Warnings with Turbo C interface
DOCUMENT ID: FYI.A.1216
DATE: 21MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Developers have been calling in complaining about our TURCBTRV.C interface not being fully compatible with the Borland C++ compiler. When the C++ compiler switch is enabled, it generates some warnings. All that's needed to get rid of the warnings are a couple of minor changes in how you define the BTRV function. These changes will be in the interface in the next release of Btrieve. If developers ask, you can describe the changes or fax them a copy of the changes below.
*****************TURCBTRV.C before the changes******************
int BTRV (OP, POS_BLK, DATA_BUF, DATA_LEN, KEY_BUF, KEY_NUM) int OP;
char POS_BLK[];
char DATA_BUF[];
int *DATA_LEN;
char KEY_BUF[];
int KEY_NUM;
{
*****************TURCBTRV.C after the changes*********************
/* Prototype - required for C++ type checking */
int BTRV (int, char *, char *, int *, char *, int);
/* define the BTRV function; with C++ you should use this format */ int
BTRV (int OP, char *POS_BLK, char *DATA_BUF, int *DATA_LEN, char
*KEY_BUF, int KEY_NUM)
{
FYI: Battery Low Errors. Elgar UPS In NetWare v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Battery Low Errors. Elgar UPS In NetWare v3.11
DOCUMENT ID#: FYI.P.9520
DATE: 20MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Getting error at server saying the battery is low.
ISSUE/PROBLEM
Getting error at server saying the battery is low even though the UPS charged the battery through the weekend. He used the following command line in AUTOEXEC.NCF:load ups type=keycard port=230 discharge=10 recharge=120
SOLUTION
Elgar told him to set JMP1 and JMP5, on the SS keycard, to "closed contact". That means the jumper goes to S2 for JMP1 and jumper goes to S10 for JMP5.
FYI: Error "Unable To Read Drive 00"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error "Unable To Read Drive 00"
DOCUMENT ID#: FYI.P.9519
DATE: 20MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Gets the error "Unable to read drive 00" when trying to copy.
ISSUE/PROBLEM
As the file server would boot strange things would occur (hang, parity errors, etc.), but after several retries the server would come up. The client at this point tries to copy files and after a couple of files have been copied receives: "unable to read drive 00:" "Unable to write to drive 00:" "Hot Fix disabled."
SOLUTION
After troubleshooting the basics (drivers, controller etc.) we had him look at the connections of the drive itself. As the power cable was bumped the drive began to spin up. The 12v cable had been pinched and was open intermittently causing a loss of power to the drive motor. Replaced the cable and all errors have disappeared and the server boots every time error free.
FYI: Mirroring Considerations
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Mirroring Considerations
DOCUMENT ID#: FYI.P.9518
DATE: 20MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Failed attempts to mirror drives.
ISSUE/PROBLEM
Mirroring in non-dedicated mode with removable media.
SOLUTION
If you have a customer who wants to mirror, but is un able to, make sure that he has NOT selected to run nondedicated and also make sure that they have not selected a drive type that is for removable media. Mirroring is not supported in either of these cases.
FYI: NETCON Not Supported Under NetWare Requestor For OS/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NETCON Not Supported Under NetWare Requestor For OS/2
DOCUMENT ID#: FYI.P.9517
DATE: 20MAY91
PRODUCT: NetWare Requester for OS/2
PRODUCT VERSION: v1.3
SUPERSEDES: NA
SYMPTOM: Cannot run NETCON on an OS/2 Client.
ISSUE/PROBLEM
In the Novell NetWare Requester For OS/2 manual (page 47 in the March 1991 edition; page 57 in the April 1991 edition), it lists NETCON among the NetWare utilities supported under OS/2. This is incorrect. NETCON is not supported under OS/2 and won't be anytime soon.
SOLUTION
Documentation has been notified of this error.
FYI: Limitation in using Variable Length Fields/XQL v2.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Limitation in using Variable Length Fields/XQL v2.11
DOCUMENT ID: FYI.A.1722
DATE: 20MAY91
PRODUCT: XQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With XQL/NetWare SQL v2.11, the parser used by XQLCompile can only handle objects up to 255 bytes in length. This means, any data values passed to XQLCompile can have a maximum length of 255, including data for variable length fields. Hence, INSERT INTO TableA VALUES (1, 2, "long data ... ") where the third field in TableA is a Note or LVar field, will return a status 546 - "Maximum string size is 255 bytes" if there is more than 255 bytes of data within the quotes.
A workaround is to pass the following statement to XQLCompile: INSERT INTO TableA VALUES (1, 2, @NOTE) followed by a call to XQLSubst to substitute your long data string for the substitution variable NOTE, and then a call to XQLExec. Another workaround is to use the Primitive call (xInsert) to insert any long data.
As a final note, this limitation also exists in XQLI, since it is making calls to XQLCompile.
Tue 4-Jun-91 9:35am Linda Anderson ADDENDUM:
We already mentioned how to insert long variable length data (more than 255 bytes) at the XQL Manager level by utilizing substitution variables. This limitation also exists in regards to updating long variable length data (more than 255 bytes). Unfortunately, the substitution workaround does not work in this case. This update can only be accomplished at the XQL Primitive level using the xUpdate function. The only alternative at the XQL Manager level is to delete the record and reinsert it with the changed variable length portion. This may need to be done inside a transaction to insure logical data integrity, depending on the application.
This information pertains to version 2.11 of XQL.
FYI: Bug In WordPerfect Office Utility NOTIFY.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Bug In WordPerfect Office Utility NOTIFY.
DOCUMENT ID#: FYI.P.9477
DATE: 19MAY91
PRODUCT: NetWare
PRODUCT VERSION: All versions
SUPERSEDES: NA
SYMPTOM: Error:"Reading network drive f:".
ISSUE/PROBLEM
When using WP Office on the Network customer randomly gets error: "Reading network drive f:".
SOLUTION
There is a problem using WordPerfect Office and the "NOTIFY" utility dated 6-14-90. Call 1-800-321-3253 and get the updated version.
FYI: Checking Packets Routed In NetWare v2.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Checking Packets Routed In NetWare v2.2
DOCUMENT ID#: FYI.P.9512
DATE: 18MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Checking packets routed by each lan card. Documentation says it can be done, but it cannot.
ISSUE/PROBLEM
In the NetWare v2.2 Installing/Maintaining the network on page 247 there is a documentation error. Under the topic 'LANs' it states to check the LAN I/O statistics if your network is not performing well and see if one LAN is getting more packets routed than the other. In NetWare v2.2 FCONSOLE it gives you total packets routed not packets routed by each lan like NetWare v3.11 does. So there is no way to check packets routed by each LAN.
SOLUTION
This error has been reported to Documentation.
FYI: COPY, NCOPY And Foxbase Sort Hang Server.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: COPY, NCOPY And Foxbase Sort Hang Server.
DOCUMENT ID#: FYI.P.9516
DATE: 17MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: COPY, NCOPY And Foxbase-Sort hang server.
ISSUE/PROBLEM
Compaq 386/20e with 3c505 (2012) ,8MB RAM and Adaptec SCSI controller (mirroring). After upgrading to v2.2 server would hang when coping files or running foxbase's sort utility.
SOLUTION
We discovered that if we linked and configured NetWare v2.2 with the LAN driver (3.1EC) that came with v2.15 and didn't use (4.33EC) shipped with v2.2 the problems went away. He was also using Disk Manager N v3.0. AHA.DSK 3199 1-22-90 V2.0 1542/1640 AHA.OBJ 15697 1-22-90
FYI: LOGIN Does Not Indicate Why Passwords Expire
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LOGIN Does Not Indicate Why Passwords Expire
DOCUMENT ID#: FYI.P.9515
DATE: 17MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: LOGIN does not indicate why passwords expire
ISSUE/PROBLEM
Login can not indicate why a password has expired. For example, a customer who changed the required length of the password complained because the users who subsequently logged into the file server received the error message "Password for user username on server servername has expired". He wanted them to get a message saying that the require password length had changed and that they needed to increase the length of their password.
SOLUTION
This can't be fixed because there is no tracking of why a password has expired, only that it has expired. Therefore, LOGIN.EXE can't determine why the password has expired. It will return the same error listed above to a user whose password has expired for any reason.
FYI: Scrambled Cold Boot Loader.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Scrambled Cold Boot Loader.
DOCUMENT ID#: FYI.P.9513
DATE: 17MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Server will boot once after replacing track zero information, then it won't ever load the OS again on successive boots.
ISSUE/PROBLEM
Customer linked and configured for wrong base I/O. He said the first time he boots it will find NET$OS.EXE but every time after it won't even begin to load which makes him believe the cold boot loader is scrambled. He also said install would hang when he tried to reload NET$OS.EXE. He used a Tiara 16bit arcnet card. The card was set for base I/0 280. He linked and configured for base I/0 2E0.
SOLUTION
Customer had to run ZTEST on the drive. Then reinstall NetWare v2.2, And set the Base I/O to 2EOh.
FYI: Btrieve for Windows v5.10 and Stack Usage
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve for Windows v5.10 and Stack Usage
DOCUMENT ID: FYI.A.1817
DATE: 17MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Recently a customer was concerned about the amount of stack his program should allocate in order to accommodate the Btrieve DLL. Because we share the applications stack this may be a concern to some customers. However we occupy a minimal amount of stack space, approximately 500 bytes. The suggested (Microsoft Windows) stack size is 6000 and will accommodate most applications.
FYI: Outstanding NCP Directory Search Limit
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Outstanding NCP Directory Search Limit
DOCUMENT ID#: FYI.A.1615
DATE: 17MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Problem: Console message "You have exceeded your outstanding NCP directory search limits" or directories not showing up using programs that recursively search directories for files (like Norton File Finder). This has only been a problem under NetWare v3.0 and v3.1.
Solution:
a) Increase the limit at the server console by typing:
SET MAXIMUM OUTSTANDING NCP SEARCHES=1000
This will increase to the maximum the number of outstanding NCP searches that the server can handle.
b) Re-write the search algorithm in the program to save off directories onto a "stack" and finish the find-next calls until failure. The algorithm should then change into each subdirectory and repeat the process (usually recursively)...see me for sample source code.
Reason:
Typically, when a program recursively searches directories for a file, it jumps into a directory as soon as it finds it and begins another find-first/find-next within that directory, and so on. The information for the find-first/find-next operations is partially stored at the file server (in an "NCP search buffer") and is only cleared when a find-next fails or when the task that began the find-first ends. Therefore, when the typical file-finder gets deep into the directories, many of these "NCP search buffers" remain in use. Since the default for this count is only 51, and since the count includes all stations, and since a find-first/find-next is used even when DOS needs to load a program, these buffers can really add up. That is why one station may only go 8 directories deep to re-produce the problem. With 8 buffers for directories, one for files, and one for running the program adding up to 10 buffers, this may not seem like much, but all the stations must be taken into account. With this scenario, 6 stations would need 60 buffers which would overload the default max of 51.
FYI: Seek Past EOF Bug
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Seek Past EOF Bug
DOCUMENT ID#: FYI.A.1614
DATE: 17MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a bug in **ANY** version of the shell prior to v3.01 rev E (this includes ANET versions as well) that has to do with cache buffers and seeking past end-of-file (EOF).
For example, if a program were to:
1) create a new file
2) seek to position 1, write the letter 'A'
3) seek to position 3, write the letter 'C'
4) seek to position 2 and write the letter 'B'
5) seek to position 3 and read (will obtain 'C')
6) seek to position 2 and read
(here he should read 'B' but instead reads 0)
When a program seeks past EOF and writes data at that location, the part of the file that is between the old EOF and the new EOF is filled with zeros. When these versions of the shell had cache buffers on (the default) the cache-buffer algorithm would get confused and think nothing had been written into the new 0'd space. A subsequent close and reopen of the file revealed that the letter 'B' had, in fact, been written. The close and re-open would clear the cache buffer(s) for that file. Any operation(s) that would over-write the cache buffer(s) for that file would allow the seek/read to work correctly from then on.
The work-around to this problem is to a) Upgrade to v3.01 rev E or later shells or b) Turn cache buffers off by adding the line:
CACHE BUFFERS=0
to the SHELL.CFG or NET.CFG file.
XMS and EMS flavors of these shells were not effected because cache buffers were not implemented in these shells until rev E.
FYI: Backing Up NetWare Ready Configuration
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Backing Up NetWare Ready Configuration
DOCUMENT ID#: FYI.P.9514
DATE: 16MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Backing Up NetWare Ready Configuration
ISSUE/PROBLEM
I have a customer that wants to back up the NetWare Ready Configuration Table on his Seagate WREN 4 hard drive. He says there is an option in DISKSET that will allow you to do this. As he was doing this, it prompted him to insert a 3rd party diskette. None of the disks he tried seemed to work. ADIC told him to label a diskette "DATADISK", insert it, and then the information would be backed up onto the diskette.
This customer wants to be sure he doesn't destroy any data, so he has asked if Novell can verify this for him.
SOLUTION
Customers should be very careful when using this option. The drive that the NetWare Ready configuration is restored to MUST be completely identical. If it is not, when the info. is restored, the size of the drive will be defined incorrectly - causing lots of problems.
FYI: Problems Using Backup VAP Running BUCONFIG
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problems Using Backup VAP Running BUCONFIG
DOCUMENT ID#: FYI.P.9511
DATE: 16MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Customer trying to use the Backup VAP. When running BUCONFIG to setup his configuration the configuration option number wasn't changing. BUSHOW showed the option still 0.
SOLUTION
In the BUCONFIG.BAT file the %2 needs to be changed to %1. Then BUCONFIG will work.
The document file for the backup.vap for v2.2 that is in 22BKUP.ZIP states that you need to use BUCONFIG to change the configuration option of the backup.vap. This is a batch file that uses Dconfig to perform this function. This could obviously be performed without the batch file by simply typing:
DCONFIG BACKUP.VP0 OTHER:TAPE,n; C1:4,0
Where "n" is the configuration option. This will return the error "Warning: Specified disk not found: C1:4,0" This message can be ignored.
FYI: Exceeding NCP Dir Search Limits
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Exceeding NCP Dir Search Limits
DOCUMENT ID#: FYI.P.9510
DATE: 16MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: "You exceeded your outstanding NCP directory search limits" error at the WorkStation.
ISSUE/PROBLEM
In the README.311 file that comes on the SYSTEM-1 disk in NetWare v3.11, it says that some applications who do not handle their searches correctly can cause the error "You exceeded your outstanding NCP directory search limits" at the console. It appears that Windows 3.0 may have this problem. This error seems to be generated in some cases when the user is doing an auto discover for windows apps in the installation process. This process goes out to all drives and searches them for valid windows applications.
SOLUTION
It seems that you can either increase the maximum NCP directory searches or you can ignore the warning and windows may not find a couple of your apps. Just a note though, the readme says increasing the max takes 24 bytes of RAM at the FS per directory per user. So, if the max is 100 directories and there are 250 users, the FS needs 600K just for the search tables.
FYI: Slow Or No Printing. NetWare v2.2 Core Printing
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Slow Or No Printing. NetWare v2.2 Core Printing
DOCUMENT ID#: FYI.P.9509
DATE: 16MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Slow printing or no printing at all.
ISSUE/PROBLEM
Using core printing services, jobs sent to the LPT1 printer off the file server would take several minutes to print and some small jobs did not print at all.
SOLUTION
After verifying that his configuration was correctly set up we deleted the print queue and recreated them. Printing now works fine.
FYI: Power Basic Btrieve Support
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Power Basic Btrieve Support
DOCUMENT ID: FYI.A.1215
DATE: 16MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
As some of you may know, Borland's Turbo Basic is now owned and marketed by Spectra Publishing as Power Basic. We do not currently support an interface for Power Basic but Spectra has one which can be downloaded from their bulletin board.
Bulletin Board # : 813-625-1721
Public Domain File : BTRIEVE.ZIP
If developers have problems with the interface, have them contact Spectra's Technical Support: 813-625-1172.
FYI: Connecting IBM AS/400 to an Existing Token Ring
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Connecting IBM AS/400 to an Existing Token Ring
DOCUMENT ID#: FYI.P.9507
DATE: 15MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.15 , v2.2 , v3.1 , v3.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Connecting IBM AS/400 via Token Ring
SOLUTION
When connecting a AS/400 directly to an existing token ring, use a product called PC Support. This allows pc emulation. You must configure the AS/400 and configure PC Support, so in essence they both create what appears to the server(s) as a single Token Ring node. The user specifies the node address. The AS/400 can then communicate and the server(s) don't realize anything is different in the environment.
FYI: Error Reading Boot Image Disk File
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error Reading Boot Image Disk File
DOCUMENT ID#: FYI.P.9506
DATE: 15MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Error Reading Boot Image Disk File
ISSUE/PROBLEM
Customer had just upgraded from NetWare v2.15c to v2.2 and had ran DOSGEN for his diskless work stations. This seemed to run fine but at boot up of the node he got the above error. Running a Samsung Ethernet adapter v1.04 and DOS 5.0
SOLUTION
Had him try another version of DOS to no avail. Ended up to be a bad prom on the card. He replaced the remote reset prom and the work station booted up fine.
FYI: Loading Second ISADISK Driver
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading Second ISADISK Driver
DOCUMENT ID#: FYI.P.9505
DATE: 15MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: INSTALL recognizes the drive but cannot partition it.
ISSUE/PROBLEM
The customer had a Compaq 386-25 with an internal 300mb ESDI drive. He added Compaq's external 650mb (Maxtor) drive with controller. When he went into install, NetWare would appear to recognize the drive but he was unable to partition it.
SOLUTION
The customer called Compaq and they told him to type "load ISADISK /L" when loading the second ISADISK driver.
FYI: Printing Problems With DTK PT1-217 Card And NE2000
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Printing Problems With DTK PT1-217 Card And NE2000
DOCUMENT ID#: FYI.P.9503
DATE: 15MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: Workstation would hang when attempting to print.
ISSUE/PROBLEM
With the computer (DTK Mod.2030, a 386/20) logged into the network, it would hang as soon as the first print job sent to LPT1 was finished. With IPX and NET4 loaded but the computer NOT logged in, the user could work and print until executing "f:<Enter>", at which point the computer would hang.
SOLUTION
In the workstation, the user had set the NE2000 I/O address to something other than the default of 300h. Reset the NE2000 to its defaults, reran WSGEN, and printer and network began to work in gratifying harmony, as advertised. Chances are it was set to I/O 360, which interferes with LPT1's I/O address of 378.
FYI: VAPs and NetWare 2.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: VAPs and NetWare 2.2
DOCUMENT ID#: FYI.A.3213
DATE: 15MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There have been a few FYI'S sent out on the additional connections that are made available to a VAP in version 2.2 of NetWare. I would like to remind everyone this means that those 100 connection arrays people currently are keeping in memory may not be big enough now. If they are using a VAP's connection number as an index into this array it may cause you a little problem. If the VAP's connection is 103 it will index past the end of the array. Look out for this.
FYI: NetWare for SAA v1.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare for SAA v1.1
DOCUMENT ID#: FYI.A.2811
DATE: 15MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If a customer wants to write a NetWare LU6.2 application as an NLM in NetWare v3.11 to communicate with an IBM host, he can do that under NetWare for SAA v1.1. This is still in Beta. But NetWare for SAA v1.0 is already out and supports up to 64 host sessions, which can be any combination of LU Types 1 and 3 (Printer Session), LU Type 2 (Terminal Display Session) and LU 6.2 (Peer-to-Peer Session). Version 1.0 doesn't have the capability of loading a Transaction Program as an NLM. NetWare for SAA v1.1 will support this feature with 254 sessions.
FYI: Windows SDK 1.2.1, IsV3
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK 1.2.1, IsV3
DOCUMENT ID#: FYI.A.2612
DATE: 15MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The IsV3Supported API is in the NWMISC.DLL and the prototype is defined is in NTT.H.
FYI: Server Abends Running LANSTOR5 And PS2ESDI Drivers Together
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Server Abends Running LANSTOR5 And PS2ESDI Drivers Together
DOCUMENT ID#: FYI.P.9502
DATE: 14MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Server Abends Running LANSTOR5 And PS2ESDI Drivers Together
ISSUE/PROBLEM
Upgrading IBM model 80 w/ 2 320 ESDI drives and an external Storage Dimensions subsystem w/ 2 650 meg SCSI drives from 3.10 to 3.11. He got the newest LANSTOR5 from SD and was using the PS2ESDI driver from 3.11. The ESDI controller was set at INT 14. The SD controller was at INT 15. The server would run with either driver individually but would Abend if he tried to run them together. He didn't have the exact error, but it sounded like a interrupt sharing conflict.
SOLUTION
Contacted SD. Their tech said to set it up like this: Reference the Model 80 as follows:
ESDI controller INT 14
Memory C800
SCSI controller INT 11
BIOS disabled
Base I/O 330
Arbitration level 6
SCSI Address 7
The SD subsystem should be set to SCSI address 0.
Load SD's NLM this way:
LOAD LANSTOR5 BYPASS
Customer set it up as shown and it ran great.
FYI: Remote Boot And Comspec
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Remote Boot And Comspec
DOCUMENT ID#: FYI.P.9501
DATE: 14MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2 , v3.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Customer had all normal (non-remote boot) workstations referencing their respective hard drives to find the COMMAND.COM. They had the comspec statement in the AUTOEXEC.BAT and no COMMAND.COM loaded on the network drives. There was no reference to a comspec statement in the login script.
They wanted to add a remote boot station and were confused as to how to reference the COMMAND.COM so that the menu would operate properly. They tried setting it to A:\COMMAND.COM in the remote boot image file. This presented a problem in that once the station was booted up it actually thought it had an A: drive and prompted for the COMMAND.COM disk to be inserted in drive A:.
SOLUTION
The solution is as follows. A version of the COMMAND.COM that was used to generate the boot diskette for the remote boot workstation must be placed on the network somewhere, preferably in a dedicated directory. In the login script, an IF-THEN statement should be included as follows:
IF P_STATION = "123456789012" SET
COMSPEC=SYS:PUBLIC\DISKLESS\COMMAND.COM
The above example assumes the following, that 123456789012 is the node address of the workstation that is remote booting and that the appropriate version of COMMAND.COM is indeed located in the SYS:PUBLIC\DISKLESS directory.
FYI: PowerVeisa 386/33 GPPE's On Boot Up At 33MHz Speed
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: PowerVeisa 386/33 GPPE's On Boot Up At 33MHz Speed
DOCUMENT ID#: FYI.P.9500
DATE: 14MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: GPPE On Boot Up At 33MHz Speed
ISSUE/PROBLEM
FS would GPPE on boot up at 33MHz but would boot if he slowed down the FS. He also could not get any of the workstations to connect to the server. They would get "A File Server could not be found".
SOLUTION
He contacted ALR who told him that their machine will not run NetWare at high speed without the very best RAM. He had to get Non Korean 80 nanosecond memory SIMMS for it to work at the high speed. Faster memory SIMMS(70 ns) would not work. He also had to replace a flaky cache card in his ALR to get the system to stay up. He solved the "File Server not Found" problem by replacing the RACAL LAN with an NE2000 compatible card. He also had to reduce his memory in his CMOS setup to less than 16 Meg in order to run with the DCB board per ADIC's instructions.
FYI: Turbo PASCAL v6.0 Btrieve Interface
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Turbo PASCAL v6.0 Btrieve Interface
DOCUMENT ID: FYI.A.1214
DATE: 14MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A number of people have asked about our supporting a Btrieve interface for the new release of Turbo Pascal. I finally tested the TUR5BTRV.PAS unit that currently ships with the Dos Btrieve and it seems to work fine with the 6.0 compiler. The only gotcha is that you must recompile the pas file into a new .tpu unit file; the .tpu generated by the 5.x compiler is in an old format.
Addendum: FYI - Turbo PASCAL XQL Interfaces
The same rules apply to the Pascal interfaces for XQL. The 5.0 interfaces work OK with TP 6.0, but you have to recompile the .TPU files.
FYI: Error "Could Not Demand Load SYSCON.EXE"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error "Could Not Demand Load SYSCON.EXE"
DOCUMENT ID#: FYI.P.9498
DATE: 13MAY91
PRODUCT: NetWare Requester for OS/2
PRODUCT VERSION: v1.3
SUPERSEDES: NA
SYMPTOM: Error "Could Not Demand Load SYSCON.EXE"
ISSUE/PROBLEM
Got the above error message. The issue is that the LIBPATH is set incorrectly.
SOLUTION
Two solutions for two different customers.
1) Had another directory from an older version of requester that had the NetWare utilities in it. The libpath was still set to this older directory.
2) The second one had a libpath set to the correct version of utilities and .DLL files. However, had another path set to a different directory that was picking up a .DLL file from an older requester before it picked up NWCALLS.DLL from 1.3.
FYI: Fix For Workstation Hanging Inserting Records In Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Fix For Workstation Hanging Inserting Records In Btrieve
DOCUMENT ID#: FYI.P.9497
DATE: 13MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: BTRIEVE and OS/2: When inserting records into a Btrieve file the WS hangs.
ISSUE/PROBLEM
Software on v3.11 server:
BTRIEVE.NLM version 5.15
BSPXCOM.NLM version 5.15
Software on OS/2 1.2EE workstation:
BTRCALLS.DLL version 5.17
SPX.SYS version 1.3
When inserting records into a Btrieve file with a page size of 1024 or 2048 and record length of 1005 or greater, the workstation will hang when 100 records are inserted. The workstation produces the following error:
Abend: Exception in Device Driver SPXS
Exception Detected An Internal Processing Error At Location #0220:35B2
WORKSTATION INFORMATION
LAN Driver Type: SPX.SYS v1.3
When you're using OS/2 SPX, the include file, SPXCALLS.H statically allocates 2 ECB fragments. Btrieve uses 3. BTRCALLS.DLL (workstation end Btrieve file) was changed to allocate 3 ECB fragments. Fixed in version 5.17a.
SOLUTION
BTRREQ.ZIP on NetWire contains v5.17a of the Btrieve Requester for OS/2.
FYI: Abend: Not Enough Memory For Directory Handle Workspace
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Abend: Not Enough Memory For Directory Handle Workspace
DOCUMENT ID#: FYI.P.9495
DATE: 12MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: After upgrade, getting the error when booting the 2.2 server: Abend: not enough memory for directory handle workspace
ISSUE/PROBLEM
After a NetWare v2.15c to v2.2 upgrade, a customer booted the file server and received this message after the cold boot loader is installed. The user claimed the server had 4 meg of RAM. We tried several options to no avail.
SOLUTION
The user finally went back through the file servers setup and determined that although he had 4meg of RAM, the AT was only recognizing 2meg. We changed the parameter in his BIOS to 4meg and rebooted the server successfully.
FYI: Arcnet Problems And 16-bit VGA.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Arcnet Problems And 16-bit VGA.
DOCUMENT ID#: FYI.P.9496
DATE: 10MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: "Error" Cannot Open QPRO.NET file" when running Quattro Pro
ISSUE/PROBLEM
A customer was using an SMC PC-500 16-bit long board twisted pair with a 16-bit Cardinal VGA 400 board and his Quattro Pro software would give "Error: Cannot Open QPRO.NET File" when he tried to run it.
SOLUTION
He ended up exchanging the 16-bit VGA board with an 8-bit Cardinal VGA 100 card and his application software worked fine.
FYI: QBasic Arrays and Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: QBasic Arrays and Btrieve
DOCUMENT ID: FYI.A.3901
DATE: 10MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
While programming in BASIC 7.x, you may want to pass Btrieve an array in the data buffer. For example, creating a supplemental index requires an array of key segments to be passed in the data buffer.
Creating supplemental indexes using BASIC 7.0 and the BC7RBTRV interface has been known to have problems. Namely, the data buffer seems to get wiped out (the first several bytes in the data buffer contain binary zeros, or other random values).
The problem is that an array cannot be passed as the data buffer by just passing the VARPTR of the array name:
REM this will not work BTRV(Create_Supp_Index,...VARPTR(Supp_Index_Array), ...)
BASIC apparently has some header values associated with arrays. The above Btrieve call will pass a pointer to the array header values which are garbage to Btrieve.
There are two solutions:
1) The easiest is to pass a pointer to the first element in the array:
Solution 2 is a little more work, however, the LEN() function can be used to calculate the length of the structure.
FYI: Excessive RIP's
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Excessive RIP's
DOCUMENT ID#: FYI.A.1613
DATE: 10MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a known, long-ago-fixed-bug in ALL of the network drivers dated 8911xx and 8912xx (11/89 - 12/89) that causes excessive RIP (Router Information Packets) to be sent out on the wire. The following is a history lesson, so if you just want to know the fix, read the last paragraph.
At or about this time frame, the guys in Provo testing wrote a program to vigorously test NetWare drivers. This program alerted the driver developers (and IPX.COM developers) to a number of problems with the drivers and IPX.COM. One of these problems was corrected by re-writing the drivers (ALL OF THEM) to disable the NIC (Network Interface Card) upon receipt of a packet. This fix did not introduce any new bugs (they thought) and corrected the problem found by the test program. Only later did they discover the repercussions of this change.
The problem with this change was that when IPX.COM received an SPX connect request, it then responded by making a GetLocalTarget request to determine the transport time. This call was made before acknowledging the connect request. But, the NIC had been disabled, so no packets were received in response to the GetLocalTarget request. Because it received no response, IPX.COM kept sending out requests until it finally decided to make up its own number. This extended the time between the connect request and its acknowledgment to anywhere between 10 seconds to 2 minutes.
The solution to this problem is simple. Make sure the driver is dated 9001xx (1/90) or later. All drivers dated 11/89 through 12/89 have this problem. One possible symptom of this problem is a somewhat slower network. The excessive RIP's can be seen using Sniffer or LANalyzer.
FYI: RPRINTER Hangs Workstation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: RPRINTER Hangs Workstation
DOCUMENT ID#: FYI.P.9492
DATE: 09MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: RPRINTER hangs workstation.
ISSUE/PROBLEM
PSERVER VAP running at FS and printer connected to FS prints fine. When RPRINTER is executed at WS, it hangs.
SOLUTION
It was found that the NIC card in the WS had been set to use IRQ7 which is also the default for LPT1 in the printer configuration screen. Changed the NIC IRQ to 2 and Rprinter worked as expected.
FYI: Btrieve v5.10 NULL key or Non-Duplicate Key
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve v5.10 NULL key or Non-Duplicate Key
DOCUMENT ID: FYI.A.1910
DATE: 09MAY91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The test performed for this FYI was later run under the VAP, NLM, and DOS environments. This problem only occurs under the NLM (v5.10).
With NON-Duplicate keys that also have a NULL value, the NULL attribute should take precedence over the non-duplicate attribute. This is not clearly documented in the Btrieve Programmer's Manual (April 1990 edition) and the NetWare Btrieve Library Reference (September 1989 edition).
Note: Btrieve v5.10 erroneously returned a status 5 (Duplicate Key Value) when two or more records with null values were inserted into a non-duplicate/NULL key. Patch #59 corrected this problem where the non-duplicate attribute was getting precedence over the NULL attribute.
This problem was found to occur with the Btrieve NLM only; not with the VAP and DOS flavors of Btrieve.
FYI: Xtrieve PLUS v4.01a Report Summaries in Forms
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Xtrieve PLUS v4.01a Report Summaries in Forms
DOCUMENT ID: FYI.A.1909
DATE: 09MAY91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Xtrieve PLUS treats forms as individual reports (according to the Glossary in the Report Option section of the Xtrieve PLUS manual). From this follows the fact that, when adding a Report Summary to an Xtrieve report, Xtrieve will try to position the summary IN the form.
If you try to add the summary outside the bounds of the form (for example, on the line following the last line of your form), you will get the error
"Field does not fit on report if placed at the specified position."
For example, suppose your form contains Field A. If you want to compute the sum of all the values in Field A, and print it outside the forms (say, at the bottom of the page), you will get this error unless your form is the same dimension as the page. If forms are smaller than the page size, summaries cannot be printed outside the forms.
This behavior was noticed with Xtrieve PLUS v4.01a, and is not documented in the Xtrieve PLUS manual (October 1988 edition).
FYI: Basic v7.x and Btrieve v5.x (Stat Op)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Basic v7.x and Btrieve v5.x (Stat Op)
DOCUMENT ID: FYI.A.1006
DATE: 09MAY91
PRODUCT: Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you speak with a BASIC v7.x user and they seem to have a problem using Btrieve Stat operation number 15, have them check their OPEN to NUL statement. Seems that many BASIC programmers have a LEN= as part of the OPEN to NUL statement. This will set up a memory location for its' records of that length. When performing a series of stat operations on a number of Btrieve files they will probably run up against one that will try to return more information in their data buffer parameter than what the LEN= is set to in their OPEN to NUL statement. This can cause one of two things to occur.
1) The stat operation will appear to succeed. However, shortly after the stat call the application will lock up and require a warm boot.
or
2) The stat operation will cause the application to lock up on the stat call itself.
Summary: If you are doing a Btrieve stat, check the OPEN to NUL LEN= to see if it is large enough to hold the stat information for that particular file.
FYI: Error "Getting Connection ID 880F"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error "Getting Connection ID 880F"
DOCUMENT ID#: FYI.P.9493
DATE: 08MAY91
PRODUCT: NetWare Requester for OS/2
PRODUCT VERSION: v1.2
SUPERSEDES: NA
SYMPTOM: Error "Getting Connection ID 880F" when booting the OS/2 Client.
ISSUE/PROBLEM
Customer gets the above error messages when bringing up the presentation manager for OS/2. The hardware configuration worked without problems using DOS.
SOLUTION
His PC110 card was set to IRQ 2 and I/O 2E0. Had to change both the interrupt and I/O address to 3 and 300 respectively. The conflict was probably with the VGA card. Int 2 and I/O 300 worked somewhat but there were still communications problems.
FYI: KBMAP Utility (3270)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: KBMAP Utility (3270)
DOCUMENT ID#: FYI.A.2810
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you are using KBMAP utility and you want to remap you keyboard to make it 3270 keyboard Novell supports KeyTronic keyboards. The NetWare 3270 workstation programs do not currently support 122-key keyboards other than KeyTronic & IRMA whose key scan codes differ from those used by KeyTronic & IRMA. However, the NetWare 3270 tools product contains materials which can be used by an experienced programmer to produce "driver" for any other 122-key keyboard that you might want to support. As of right now Novell is helping Memorex keyboard company to develop a "driver" to support 122-key and Enhanced Memorex keyboards. The contact person in Memorex is Jeff Merkey at 214-714-7500. So if a customer is using Memorex keyboard and wants to remap it as 3270 keyboard you may contact Jeff or let the customer contact him for more info.
FYI: Memory Problems (3270)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Memory Problems (3270)
DOCUMENT ID#: FYI.A.2809
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you want to load workstation emulator software in High memory you might want to use a 3rd party software developer called Helix Software Company (1-800-451-0551) has developed a program called Connecting/ROOM which lets you load NetWare 3270 LAN Workstation for DOS, without using any conventional memory for the emulator which saves approximately 150 to 200K of memory. Supports NetWare 3270 LAN and CUT workstation software. Connecting/ROOM lets you relocate ("swap") the entire Novell NetWare 3270 workstation software for DOS to expanded orextended memory, and hard disk. This software has been tested and certified by Novell.
FYI: Function 24(3270)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Function 24(3270)
DOCUMENT ID#: FYI.A.2808
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Function 24 (Query Host Update) in NetWare 3270 High-Level API's returns a return code of 22 which is Presentation Space Updated even though it's not updated. The new HLLAPI.exe v2.2.f.9 is a fix for this.
FYI: 3270 Trace Mechanisms
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: 3270 Trace Mechanisms
DOCUMENT ID#: FYI.A.2807
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The workstation trace program (WSTRACE.EXE) comes with 3270 toolkit can be run at workstation which has the LU6.2 Protocol Boundary. This trace facility is extremely useful especially for the Technical Support and Development people in NetWare LU6.2 and NetWare SNA Gateway problem determination. There are two types of traces that WSTRACE.EXE allows the user to turn on or off: API and MESSAGE. API traces the request and return of all Verb Records that traverse that particular workstation's Protocol Boundary, and the MESSAGE traces all Message Units that traverse the gateway's Path Control. If the SNA gateway fails the Message trace option records traffic for all LU Types including LU Type 2 which generates an output file called OUTPUT.PC.
FYI: CLib 3.11 on NetWare 3.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLib 3.11 on NetWare 3.1
DOCUMENT ID#: FYI.A.2611
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Well some people do the obvious NOT TO's. If this happens you will undoubtedly see many 'undefined symbols' when trying to load CLIB.NLM 3.11 on a 3.10 server. This is so since obviously CLIB 3.11 contains symbols specific to NW 3.11. These symbols are not part of NW 3.10 and voila, that is the problem.
FYI: GetServerInformation (CLib 3.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetServerInformation (CLib 3.11)
DOCUMENT ID#: FYI.A.2610
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Just a reminder for all...the max number of connections returned on this call consists of the total number of connections, including the login connections, and the NLM or VAP connections, respectively.
That is : for NW 386 3.11, login connections = 250, NLM connections = 100, so the total returned would be 350.
FYI: CLIB 3.11, mkdir Bug
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: CLIB 3.11, mkdir Bug
DOCUMENT ID#: FYI.A.2609
DATE: 08MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The CLIB mkdir function has problems when specifying file name extensions on remote calls to NW 286 2.15 & 2.2.
This call works correctly otherwise...
FYI: Order of Precedence with Btrieve Extended Retrieval
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Order of Precedence with Btrieve Extended Retrieval
DOCUMENT ID: FYI.A.2006
DATE: 08MAY91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The "and" and "or" operators used in a filter with the Btrieve extended get and step operations are interpreted in strict left to right order. Take, for example, the following file which contains records of first and last names that will return a different set of records with an extended get depending on the order of the operators:
RECORDS:
Sally Fields
Fred Fields
Fred Smith
Sally Jones
Sally Smith
Fred Jones
FILTER AND RECORDS RETURNED (with key path = FN):
FN=Fred and LN=Smith or FN=Sally FN=Sally or FN=Fred and LN=Smith
returns: returns:
Fred Smith Fred Smith
Sally Fields
Sally Jones
Sally Smith
Btrieve evaluates an expression in the filter. If the expression when applied to the current record is true and the next operator is an 'or', this record is accepted as meeting the filter condition. If the expression is true and the next operator is an 'and', Btrieve will continue to evaluate each expression until an 'or' is reached, or one of the expressions evaluates to false, or the end of the filter. If an expression is false and the next operator is an 'and', the record is rejected. If the expression is false and the next operator is 'or' Btrieve will continue and evaluate with the next expression in the filter.
Current Expression Next Operator Action
------------------ ------------- ------
True or Accept
False or Continue
True and Continue
False and Reject
True (end) Accept
False (end) Reject
FYI: Upgrading Xtrieve 3.x to 4.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Upgrading Xtrieve 3.x to 4.x
DOCUMENT ID: FYI.A.2005
DATE: 08MAY91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When a set of DDFs is created through Xtrieve 3.x, a file definition X$Defaults is defined to the dictionary. The associated Btrieve file, DEFAULTS.DDF, is not created until a 'default' is added to a file in the dictionary through the 'Dictionary - Default' option of Xtrieve.
When upgrading from Xtrieve 3.x to 4.x with UPGRADE.EXE, the file DEFAULTS.DDF is converted to ATTRIB.DDF. If a 'default' has never been added to the dictionary, the DEFAULTS.DDF file does not exist. But, since X$Defaults is defined to the dictionary, Xtrieve tries to find the file to convert it. When the file is not found, the upgrade procedure fails with errors that a file cannot be found.
To upgrade successfully, remove the definition of the defaults file by choosing 'Dictionary - Remove' from the Xtrieve main menu and then choose the definition 'X$Defaults' and remove it.
FYI: Peak Accountant Software And Network Printing
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Peak Accountant Software And Network Printing
DOCUMENT ID#: FYI.P.9491
DATE: 07MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: In Peak Accountant Software, the fourth print job was always garbage.
ISSUE/PROBLEM
Customer was running an accounting software package called Peak Accountant. If this software is installed and run locally on a workstation, when printing through the network, the fourth print job was always garbage. This was the only workstation experiencing any printing problems.
They took "Peak Accountant" off the local workstation and installed on the network (using the networking options) and it prints fine. They took it off the file server and put it back on the workstation but took the workstation off the net and dedicated a printer to it, and it prints fine also.
SOLUTION
It cannot be installed locally and still print through the network in some remote instances. If network printing is desired, it must be installed on the network.
FYI: Duplicate Node Addresses On NetWare v2.12 And v2.2. Servers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Duplicate Node Addresses On NetWare v2.12 And v2.2. Servers
DOCUMENT ID#: FYI.P.9490
DATE: 07MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2 , v2.12
SUPERSEDES: NA
SYMPTOM: Some servers are not being seen on the internetwork.
ISSUE/PROBLEM
I had a customer internetworking an Advanced NetWare v2.12 server and a v2.2 server, but they were having problems logging into one server. When he did an SLIST from a workstation logged into the 2.12 server, he could only see the 2.12 server. However, if he logged into the NetWare v2.2 server, he could see both servers from an SLIST.
SOLUTION
In checking for correct lan addresses through config, we noticed that the 2 NE2000 cards in the 2.12 server had the same node address. After swapping out one of the NE2000 cards, everything was fine and he could log into either server and see both through an slist.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
Recently I had a customer with a BASIC/Btrieve application. The application was written and compiled for the DOS environment. The customer had an OS/2 LANSERVER network and OS/2 EE workstations. His application ran fine under pure DOS environments but would receive interrupt errors on the OS/2 workstation when trying to create Btrieve files. He was able to correct the problem by opening the file in his BASIC program as \DEV\NUL instead of as NUL.
FYI: NetWare SQL v2.11 / Installing Security on Views
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NetWare SQL v2.11 / Installing Security on Views
DOCUMENT ID: FYI.A.1815
DATE: 07MAY91
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Presently, there is not a way to install security on views. Customers may have a situation where they want to make it impossible for the user to overwrite a pre-existing view. Unfortunately, view level security is not implemented in XQL or NetWare SQL version 2.11.
My customer tried creating a group with READ-ONLY access to the X$VIEW table. However, he found that he could still overwrite existing views and create new views. The reason for this is very basic. When the VIEW.DDF is changed, we are not accessing the person's security rights. The dictionaries are excluded from the security check when a change occurs.
In this situation, the best way to implement it is programmatically. A side note: if the user has READ-ONLY rights on the NetWare level, it will still not hinder their ability to update the dictionary because NetWare SQL asks for the file to be opened and Btrieve is not aware of any particular user at that time.
FYI: Running Jumpers And Configuring NET$OS.EXE without logging in.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Running Jumpers And Configuring NET$OS.EXE without logging in.
DOCUMENT ID#: FYI.P.9489
DATE: 06MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.15 , v2.2
SUPERSEDES: NA
SYMPTOM: Getting "A file server could not be found".
ISSUE/PROBLEM
The customer had selected the jumpers option in the lan "configuration option" then completed the installation and booted the server with no problem. He tried to log in and got "A file server could not be found". He realized he forgot to run JUMPERS. He looked in the Manual to see how to run Jumpers, "Using the Network Pg 345". The manual assumes that the network is up and running in order to run jumpers. The problem is the network cannot be up and running because you have not configured the LAN driver yet.
SOLUTION
He copied the following files to a DOS diskette:
FILE DISKETTE
$RUN.OVL DOSUTIL-1
IBM$RUN.OVL "
SYS$ERR.DAT "
SYS$MSG.DAT "
NET$OS.EXE OSEXE
JUMPERS.EXE WSGEN
JUMPERS.HLP WSGEN
He then ran JUMPERS, selected NET$OS and the lan driver configuration he wanted then ran NET$OS from DOS and the server came up. He then copied the NET$OS.EXE into the SYSTEM directory.
FYI: GetDLLVersion API for Windows SDK version 1.2.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetDLLVersion API for Windows SDK version 1.2.1
DOCUMENT ID#: FYI.A.2608
DATE: 06MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetDLLVersion API has a minor problem when trying to obtain the version from the NWIPXSPX.DLL. It returns a return code of 255 (-1) and all the version numbers of 0's. It is supposed to return the SDK version number from all the DLL's. It works for all other DLLs, just not this one.
FYI: Option 0 on XQLFetch (XQL v2.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Option 0 on XQLFetch (XQL v2.11)
DOCUMENT ID: FYI.A.1410
DATE: 06MAY91
PRODUCT: XQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In version 2.11 of NetWare SQL, there is a bug with option 0 (Fetch Current) of XQLFetch. It only occurs when the restriction consists of an OR operator joining two expressions, each with the same index involved in an equality comparison.
For example:
SELECT...WHERE index = 1 OR index = 5.
The resulting data returned will not be the correct data for the select statement. This bug is in development.
The workaround is:
SELECT ...WHERE (index > 0 AND index <2) or (index > 4 AND index < 6).
FYI: Microsoft and VAPs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Microsoft and VAPs
DOCUMENT ID#: FYI.A.3710
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is also a switch in Microsoft that indicates DS != SS, it is /Aw.
FYI: Additional Info on Undocumented IPX calls
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Additional Info on Undocumented IPX calls
DOCUMENT ID#: FYI.A.3709
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the DLL, we have the call IPXGetMaxPacketSize. This call uses function code 1Ah. This is a call to IPXGetMediaDataSize and gets the information from the driver itself. The 0Dh call can lie to you because it is a software call to IPX and in the past (sometimes) has been canned and only returned the 576 bytes. The 1Ah call has existed since 11/89.
FYI: Microsoft Overlays
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Microsoft Overlays
DOCUMENT ID#: FYI.A.3708
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The reason that the problem occurs has to do with the way that the overlay manager finds and remembers where its overlay files are stored. When the first overlay is loaded, the overlay manager searches first in the current directory and subsequently the path. When the overlay is located, the full path name of the overlay is constructed and remembered so that subsequent loads don't require a path search. The problem that you observed was caused when the Novell search drives made it appear that the overlay was found in the current directory, when in fact it was found somewhere else. When the overlay manager used a full path name the second time it tried to find the overlay, the search drive function was bypassed and the file was not found, because it wasn't really in the current directory to begin with.
The SMODE command was made to deal with this specific problem. Set the SMODE for the executable file that has overlays to NO SEARCHING. This will prevent the search drive "feature" from functioning within the context of that particular executable. The reason 6.0 fixes this is that the overlay manager uses a different strategy for locating its overlays.
FYI: Free IPX Block Failed
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Free IPX Block Failed
DOCUMENT ID#: FYI.A.3316
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A customer called and reported to me that his customer was receiving ABEND: Free IPX Block Failed on his 2.15 server when running his application. After researching and speaking with LANSWER, I learned that this message is generated when a LAN driver doesn't support NETBIOS. I spoke with the customer and sure enough, his application is NETBIOS based. This problem is normally resolved by upgrading the LAN driver.
FYI: Btrieve v5.10 Status 2 Alert!
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve v5.10 Status 2 Alert!
DOCUMENT ID: FYI.A.3302
DATE: 03MAY91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
We have had quite a few customers report Btrieve status 2s when they are accessing a data file with multiple position blocks on a local DOS drive. In fact, this has been reported as a bug 3 different times for 5.10. It isn't a bug! The customer simply needs to load SHARE if accessing a file with multiple position blocks.
FYI: SetCurrentConnection not Name Space Sensitive (CLib 3.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetCurrentConnection not Name Space Sensitive (CLib 3.11)
DOCUMENT ID#: FYI.A.3108
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The SetCurrentConnection API is not name space sensitive. Remember that when you make this call, it resets your CWV and CWD back to the root of vol SYS. The problem is that it selects the DOS name space directory number instead of the directory number for your current name space. This problem is applicable to v3.11 NetWare only.
FYI: SetCurrentNameSpace Abend (CLib 3.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetCurrentNameSpace Abend (CLib 3.11)
DOCUMENT ID#: FYI.A.3107
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The SetCurrentNameSpace API in CLib v3.11 can ABEND the server if your CWD is anything other than the root at the time the call is made. This seems to occur only if your name space is something other than DOS. The workaround is to chdir() back to the root before you make the SetCurrentNameSpace call.
FYI: SetCurrentConnection API(CLIB 3.1 & 3.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetCurrentConnection API(CLIB 3.1 & 3.11)
DOCUMENT ID#: FYI.A.3106
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
SetCurrentConnection resets CWV & CWD to SYS:
The SetCurrentConnection API in CLib 3.1 and 3.11 resets the CWV and CWD for a thread group back to the root of vol SYS:. If you are unaware of this, you may have some problems with the context of any thread within the thread group that makes this API call. Also worth noting is that LoginToFileServer calls this API to allocate a connection number for you.
FYI: 3270 Device & Screen Buffers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: 3270 Device & Screen Buffers
DOCUMENT ID#: FYI.A.2806
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Device and Screen Buffers comes under our 3270 low level API's which are used in many of the function definitions. Device buffer is an area in Workstation Control Program memory which has the data representation of IBM's 3270 terminal buffer codes. The Screen Buffer on the other hand is an area in workstations memory that represents the workstations display screen. Each position of the display screen is represented by 2 bytes in the Screen Buffer where the first one is the ASCII code for the character to be shown and the second specifies the monochrome or color attribute of the displayed character. You can use Function-5 (Get Character from Device Buffer) our Low-Level API which returns the character currently at the specified cursor position of the Device Buffer. The character is translated to ASCII, using the table in KBMAP Utility User's guide.
FYI: readdir Bug (CLib 3.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: readdir Bug (CLib 3.11)
DOCUMENT ID#: FYI.A.2607
DATE: 03MAY91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here is a new feature, for remote 286 'readdir' calls the 'Transactional' bit is not returned for a file in the DIR structure, field 'd_attr'. It works correctly for remote 386 calls.
FYI: Loading Proteon 4/16 Driver In AUTOEXEC.BAT
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Loading Proteon 4/16 Driver In AUTOEXEC.BAT
DOCUMENT ID#: FYI.P.9487
DATE: 02MAY91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Loading the Proteon 4/16 driver in AUTOEXEC.NCF would ignore the speed and cable type specified as parameters.
ISSUE/PROBLEM
The driver is still that delivered for NetWare v3.10.
SOLUTION
Be sure to specify these parameters in uppercase. Otherwise the parameters are ignored and defaults are taken. This is a problem well known to Proteon.
LOAD <driver name> s=16 c=utp ! Does NOT work.
LOAD <driver name> S=16 C=UTP ! Does work.
FYI: Error "Unable To Open DSKSCTRS.DAT, TTS Not In The VDT"
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error "Unable To Open DSKSCTRS.DAT, TTS Not In The VDT"
DOCUMENT ID#: FYI.P.9488
DATE: 01MAY91
PRODUCT: NetWare
PRODUCT VERSION: v2.2
SUPERSEDES: NA
SYMPTOM: UNABLE TO OPEN DSKSCTRS.DAT, TTS NOT IN THE VDT, No files copied during INSTALL.
ISSUE/PROBLEM
Using an IDE hard drive.
Customer was trying to install NetWare v2.2 on this drive and was getting the error above. The NetWare directories had been created and he could boot the server from floppy nondedicated. After logging in from floppy over 600 tmp files were found in the SYSTEM directory. We copied all the files over to SYS: with DOS and everything worked fine.
SOLUTION
After Ztest everything installed fine. Ztest will not ruin IDE drives because drive info is not kept on track 0. Formatting them can.
FYI: System Login Script Not Executing Without END Statement
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: System Login Script Not Executing Without END Statement
DOCUMENT ID#: FYI.P.9485
DATE: 01MAY91
PRODUCT: NetWare
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: System login script not executing.
ISSUE/PROBLEM
The system login script was not executing.
SOLUTION
Actually the system login script was basically identical to the default except that he had an if then statement with NO END. He thought the system login script was executing but it wasn't, the default was. Just like it is supposed to, it ignores the rest of system login script and goes to the user or default.
FYI:Clock Function
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Clock Function
DOCUMENT ID#: FYI.A.5102
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I have used the clock function for benchmarking and discovered that the clock function is deceptive. It returns 1/100'ths seconds but it's granularity is really only 1/18'ths seconds. The memory location in computers that keeps the time is incremented every 1/18'th of a second. The clock function reads this value, converts it to 1/100'ths seconds and returns this converted value.
If you look in an 80286 manual for time operations you will see that the 1aH BIOS interrupt can be used to retrieve this value as time and/or date in various formats or the actual value, which is in units of 1/18'ths seconds.
I have taken some VAP code that can return the time with an accuracy of 1/64K'th of 1/18'th of a second and converted it for use by DOS executables and NLM's. This accuracy is achieved by reading a count down value that counts from 64K (65535) to 0 every 1/18'th of a second. Every time this count down value hits 0 the value used by the 1aH BIOS interrupt is incremented (thus it is incremented every 1/18'th of a second) and the count down value is reset to 64K.
FYI: GetFileServerDateAndTim
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetFileServerDateAndTim
DOCUMENT ID#: FYI.A.3315
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetFileServerDateAndTime is documented incorrectly in the NetWare System Calls - DOS, version 1.0. The documentation states the the 0xE3h function is loaded in AH, it should be 0xE7.
FYI: GetPrinterStatus
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetPrinterStatus
DOCUMENT ID#: FYI.A.3314
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare C Interface - DOS, version 1.20, does not document the GetPrinterStatus function as a NetWare 2.x specific call. GetPrinterStatus is not supported in the NetWare 3.x environment. A status of 251 (0xFBh) is returned (UNKNOWN_REQUEST) if the call is made in NetWare 3.x.
FYI: NETBIOS & SHELL.CFG
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NETBIOS & SHELL.CFG
DOCUMENT ID#: FYI.A.3212
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When you load NetBIOS it looks in its default directory for the file shell.cfg and reads the NetBIOS configuration information. It will not go the another directory to find it. So if you have IPX, shell and shell.cfg on you floppy and then put NetBIOS on the network somewhere. NO changes to NetBIOS configuration made in the shell.cfg on your floppy will effect NetBIOS when it loads. In other words, the current directory.
FYI: Microsoft and VAPs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Microsoft and VAPs
DOCUMENT ID#: FYI.A.3211
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Microsoft compiler assumes the DS and SS are in the same segment when it generates code. Which is usually the case. Unless you are writing a VAP. for the main process it is fine. However if you spawn a child process unless your stack is part of the original data segment you will have problems. There is a switch in Watcom that relaxes this assumption /zu.
FYI: Microsoft Link 5.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Microsoft Link 5.1
DOCUMENT ID#: FYI.A.3210
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I have found that programs compiled and linked with Microsoft that use overlays don't seem to work well if compiled with 5.1. If you have a directory where an executable file is stored in you search mappings, then from somewhere else on the network attempt to run that file. It will find it to start execution, however on the loading of the first overlay it will ask you to insert a disk as it cannot find the executable again. If you recompile and link this same application under 6.0 the problem goes away.
FYI: NLM Documentation (fcloseall)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NLM Documentation (fcloseall)
DOCUMENT ID#: FYI.A.3209
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The 3.11 NLM documentation says that fcloseall should close all second level files except stdin, stdout, and stderr. Well in an NLM this is not the case. If you do an Fcloseall all second level files will be closed.
FYI: Compiler Problems (Watcom 8.0 386 Compiler).
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
When compiling with the /fpi option the underflow, overflow exception status bits are not being set. The /fpi option says that you can put 80387 code in your program if it detects a 80387 it will use it, otherwise it will call the Emulator functions. This works fine except the exception status bits for overflow and underflow don't get set. (Watcom has this fixed in their next release. /fpc works fine. The overflow and underflow signals get raised as they should.
When most compiler generate a function the first instruction inside the routine ins a push BP. This means that the return address and BP are next to each other on the stack. Some people have made use of this fact to do function trace backs and various other strange things. The Watcom compiler does not do this. It allocates space for some of its local variables on the stack and then pushes BP. BP and the return address are not together on the stack so the above mentioned code no longer functions. I understand with the next release of the Watcom compiler there will be a switch that allows you to specify that you want BP pushed first thing.
FYI: Undocumented IPX Call
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Undocumented IPX Call
DOCUMENT ID#: FYI.A.3207
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
To determine the maximum packet size your station will handle make the following IPX call.
BX = 0D
(call the IPX entry point)
AX (returns max packet size)
This is not an indication of how big a packet the network as a whole will support. It is just information about the station you run it on.
FYI: WVIDEO and a Bus Mouse
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WVIDEO and a Bus Mouse
DOCUMENT ID#: FYI.A.3206
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Just a note about WVIDEO. If you are using a bus mouse and find that it does not work every time that you go into the debugger, there is a program supplied with the compiler to take care of the problem. The program is called mousefix.exe if you run this program it inits the mouse for use with the debugger.
FYI: NetWare 2.2 Memory Requirements
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare 2.2 Memory Requirements
DOCUMENT ID#: FYI.A.1512
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A customer recently inquired as to the amount of memory necessary to run NetWare 2.2. He was not able to load the Btrieve VAP due to a lack of memory. Well, here is the formula for figuring out exactly how much memory is necessary.
Mem Req = [.005 * MB Disk] + 2MB + 2MB (IF ANY VAPS) + 1MB (IF NON-DED)
FYI: Btrieve v5.10 Status 95
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve v5.10 Status 95
DOCUMENT ID: FYI.A.1507
DATE: 30APR91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Recently, I had a customer report a problem with his Btrieve application returning a status 95 on a regular basis. He was running his application on a Novell network with the Btrieve VAP. His problem was also only able to be duplicated under Token Ring (Proteon). Well, his problem was that the ring was so big that the token could not make it back to the workstation before the SPX session was reset. The customer split the ring into two rings and the status 95 was resolved.
FYI: IPXScheduleEvent/IPX 3.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: IPXScheduleEvent/IPX 3.x
DOCUMENT ID#: FYI.A.1308
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With the popularity of Windows and the need for Novell to be compatible, IPX 3.x was born. IPX 3.x internally, had to change to accommodate IPX/SPX calls. One such change has to do to with AES socket validation. Prior to IPX 3.x, older versions would allow programs to schedule an AES event with ScheduleIPXEvent using an ECB that had an invalid (unopened) socket.
Validation of the socket field in the ECB is required when running IPX programs under Windows 3.0. There was a patch called AESCHCK.PAT which removes this validation so that older programs would work this version of IPX.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
If Intruder Detection/Lock is enabled, a call to VerifyBinderyObjectPassword must be successful within the limits specified for a password retry. Otherwise, Intruder Detection/Lockout will lock that user out for the specified amount of time.
FYI: Security & Unique Passwords
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Security & Unique Passwords
DOCUMENT ID#: FYI.A.1306
DATE: 30APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In SYSCON, if a users account requires that he has a unique password, the user will not be allowed to use a password HE or SHE had used PREVIOUSLY. In other words, uniqueness of a password is placed on the USER not on a uniqueness among other users passwords.
FYI: "Invalid Drive Specification". MicroSoft SQL Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: "Invalid Drive Specification". MicroSoft SQL Server
DOCUMENT ID#: FYI.P.9484
DATE: 29APR91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: After loading the MS SQL server, the WS would get "invalid drive specification" when switching to F:.
ISSUE/PROBLEM
Customer had a NetWare v3.11 FS up and running great. They then loaded a MicroSoft SQL SERVER on the same FS(Computer). After they loaded the SQL server, the WS would get the above error when switching to F:. They tried putting a "lastdrive=e:" in the CONFIG.SYS and it made no difference. They could login from floppy.
SOLUTION
They found out that their LOGIN directory had been deleted, so they recreated it. That only helped partially. They then had to run VREPAIR and everything works great again.
Note:Actually, you only have to dismount and remount the volume after recreating the LOGIN directory.
FYI: Windows SDK 1.2.1 - IPX immediate address field in ECB:
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Windows SDK 1.2.1 - IPX immediate address field in ECB:
DOCUMENT ID#: FYI.A.3707
DATE: 26APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The immediate address field, on received IPX packets, is not being copied from DLL's memory into the local ECB's setup by the user. The field contains all 0's but should contain the SOURCE address of the NODE that sent the packet, if on the local net, otherwise a bridge that routed the packet. This field may be used for setting up the destination address for ECB's to the send out, although the recommended approach is to use the IPXGetLocalTarget API to setup the immediate address field.
FYI: MapDrive
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MapDrive
DOCUMENT ID#: FYI.A.3313
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The MapDrive function is not freeing memory allocated from within the function. MapDrive calls the function GetPathEnvironment which returns the allocated variable PathVariable. PathVariable is never freed. The only time this will be noticed is when you are calling MapDrive repetitively. The end result is random error codes, and in the case of my customer, her machine locked up. The work-around is to insert "free(PathVariable)" statements before all returns in the MapDrive function.
FYI: GetVolUsage
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetVolUsage
DOCUMENT ID#: FYI.A.3312
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetVolUsage function does not support NetWare block sizes of 64k. This is because the value returned in the blockSize field of the NWVOL_USAGE structure is a WORD (unsigned integer). The maximum value that can be stored in a WORD is 65535. A value of 64k translates to 65536 (64 * 1024). The value returned in the blockSize field is zero, when an integer overflows it wraps back to zero.
Work-around: If the value returned is zero, the block size is actually 64k.
FYI: ScanDirEntry
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanDirEntry
DOCUMENT ID#: FYI.A.3311
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The ScanDirEntry function in the NetWare C Interface - DOS is not functioning properly under NetWare 2.x. The function fails when used repetitively to search for directories. Under 2.x a status 152 (VOLUME_DOES_NOT_EXIST) is eventually returned. This may occur after only scanning two or three directories. The function performs correctly under 3.x.
As a work-around the customer can use the ScanDirectoryInformation under 2.x, unless they are searching for system or hidden files. If they need to find system or hidden files they will need to use the DOS findfirst, findnext functions.
FYI: GetVolUsage
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetVolUsage
DOCUMENT ID#: FYI.A.3310
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetVolUsage call that is supposed to work for NW 2.x and NW 3.x does not function properly. The name is returned as only the first byte of the name. Available disk blocks is returned as a higher number than total disk blocks. The block size is also returned incorrectly. The work-around is to use the GetVolumeInformation call for NetWare 2.x.
FYI: SetDefaultCaptureFlags
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SetDefaultCaptureFlags
DOCUMENT ID#: FYI.A.3309
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The flushCaptureTimeoutCount field in the SET_CAPTURE_FLAGS structure must be IntSwapped before making the call. I have had two people this week call and ask why the timeout is getting set to very high numbers when they only set it for a value of 2 or 3 seconds. One other thing to remember when making this call is that the value entered is in clock ticks (1/18 of a second), NOT seconds.
FYI: ScanBinderyObjectTrusteePath
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: ScanBinderyObjectTrusteePath
DOCUMENT ID#: FYI.A.3308
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The ScanBinderyObjectTrusteePaths function is defined twice, in two different ways, in the NetWare C Interface - DOS manual. Bindery Services defines the trusteeAccessMask as a WORD. Directory Services defines trusteeAccessMask as a char. A look at the source reveals that the definition in Directory Service is the correct one. That presents a problem, however, there is no way to get the SUPERVISOR access bit for NetWare 3.x on a user trustee basis.
FYI: Btrieve Resets and COBOL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve Resets and COBOL
DOCUMENT ID: FYI.A.3301
DATE: 24APR91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
COBOL programmers need to be aware of the potential dangers of performing Btrieve Resets within their applications. This is especially true when calling COBOL subprograms. A Btrieve Reset causes all open Btrieve files to be closed, not just the files opened in the current program. COBOL, unlike many other languages, allows a called program to remain in memory after it has been called and then returns to the parent application, unless explicitly cancelled. The memory for the called module remains static until the module is called again. This is where the danger becomes apparent. Let's say the programmer performs the following operations:
1. Opens multiple data files main program.
2. Opens a data file in a called subprogram and returns to parent process.
3. Performs operations upon the files in the main program.
4. Issues a Btrieve Reset.
5. Opens additional data files.
6. Calls subprogram once again. This time he issues a close and then opens another data file and returns to the parent.
7. He inserts a record into one of the data files in the parent program.
This is where the file corruption occurred. When he inserted the record, it was inserted into a completely different file than he intended. Why? In step 4 he issued a Reset which closed all of his existing data files. In step 5 he opens additional files, followed by closing and opening files in step 6. The close is what caused the eventual corruption to occur. He passed an invalid position block to Btrieve. This file had already been closed and a different file had taken its place when the files were opened in step 5. He was actually closing a file opened in the main program even though he didn't know it. The file he closed was the one he eventually wanted to insert a record. By opening another file in the called program he received the same Btrieve file position for the new file as the one he accidentally closed. The main program then performs an insert with what it thinks is a valid position block: unfortunately, it's not. The record gets inserted into a completely different file.
The moral of the story is: COBOL programmers beware of Resets when called subprograms are involved.
FYI: LU6.2 Verbs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: LU6.2 Verbs
DOCUMENT ID#: FYI.A.2805
DATE: 24APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetWare LU6.2 supports an extensive verb list. These verbs uses DOS software interrupt similar to the other API's. A TP (Transaction Program) can issue up to 52 verbs to start, continue, and terminate conversations with another transaction program. Of these 52 NetWare verbs, 16 are used in basic conversations, 13 are used for mapped conversations, and 15 are control verbs that define physical units (PU's), logical units (LU's), and partner logical units. The remaining 8 verbs are service verbs that transfer maintenance statistics, convert character strings (ASCII to EBCDIC and back) and invoke tracing mechanisms. A typical conversation between application subsystems that provide services for the transaction programs is established at both local workstation and remote workstation by issuing ATTACH_PU, ATTACH_LU, ACTIVATE_DLC, and CNOS, which define the physical unit and network names, and local and remote workstation LU names, various system parameters, and modes of conversations. ACTIVATE_DLC sets up the data link control adapter while CNOS establishes the mode session limit.
To terminate conversations between transaction programs, each workstation should issue the verbs CNOS, DETACH_LU and DETACH_PU in the reverse order to the order in which they are issued.
FYI: Btrieve 5.10a's Minimum Record Length and Data Compression
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve 5.10a's Minimum Record Length and Data Compression
DOCUMENT ID: FYI.A.1107
DATE: 24APR91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
What is the minimum record length a Btrieve file can have? The standard response is 4 bytes; however, if you have a file with data compression it can be as small as 1 byte. Files without data compression specified on the create still have a minimum record length of 4 bytes.
Compressed data pages in the Btrieve file will contain 1 byte to denote which compression algorithm you may be using, or a delete flag which indicates that the record has been deleted. Following that first byte, there's a pointer to where the actual record is stored on the variable data page. Finally, there are potentially two more pointers per duplicate key following the pointer to the variable page.
So, if you have a 1 byte fixed length record in a file that was created with data compression, you could be storing more bytes in the file than you bargained for! (Of course, how many people would have a 1 byte fixed length record - without a variable portion following it?...you never know!!!)
FYI: Novell Link/X.25 Router Not Sending Packets
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Novell Link/X.25 Router Not Sending Packets
DOCUMENT ID#: FYI.P.9478
DATE: 23APR91
PRODUCT: NetWare
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: Problem with Novell Link/X.25 External Router not recognizing or sending source routing packets.
ISSUE/PROBLEM
Novell's LINK/X.25 product is written by EICON Technologies in Canada. The Router, must be generated Non-Dedicated real mode to allow uploading of the firmware into the EICON card. They tried 2.50, 2.60, and 2.61 drivers and 1988 firmware on the Token-Ring card.
SOLUTION
When executing the bridge, the command must be as follows:
BRIDGE 450 <enter>
The customer was using 400 as the amount of ram set aside for the bridge function. This left insufficient ram to successfully load ROUTE.VP0. The key is to look at the bridge console and watch it initialize. The source routing VAP will show the following text on the bridge console if it loads properly:
Loading VAP Route.vp0:
Novell 286 OS Source Routing Vap v1.01 (900928)
(c) Copyright 1990 Novell Inc. All Rights Reserved.
Lan Driver "A" Source Routing has been ENABLED
If the above message appears, (especially the ENABLED message) the ROUTE.VP0 loaded successfully.
FYI: Starter Kit Bug / SQLFile v2.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Starter Kit Bug / SQLFile v2.10
DOCUMENT ID: FYI.A.1721
DATE: 23APR91
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a bug in the SQLFile Data Editor that ships with the Client/Server Starter Kit. If you specify a Server Definition File when starting the data editor, you are required to include a C1:field parameter in this definition file to specify the field (column) name to be used for sorting (manual page 4-2). If this field name consists of all upper case letters or all lower case, everything is fine. However, if the field name is defined in the dictionary with mixed case, SQLFile will not find it, and will return the error message "Invalid Column Name [FIELD]" where FIELD is the field name you specified in the server definition file. In this case, you will not be able to use a Server Definition File when starting SQLFile.
The developer of the SQLFile Data Editor (Vinzant, Inc.) is aware of the problem and it has been fixed in the next version. Customers can call Vinzant, Inc. at 219-763-3881 (manual page 4-1) and request an upgrade for a cost of $50, as of April 23, 1991. This figure may be subject to change.
FYI: SetCurrentNameSpace() in CLib v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: SetCurrentNameSpace() in CLib v3.11
DOCUMENT ID: FYI.A.3104
DATE: 22APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The SetCurrentNameSpace() API says it returns the old_current_name_space. This is true, unless the name space you pass in is either invalid or is not supported on the current working volume. In that case, it returns 255.
If you attempt to SetCurrentNamespace() while you are logged in (i.e. not on connection zero), it will return 255.
FYI: Attached vs Logged in
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Attached vs Logged in
DOCUMENT ID: FYI.A.1305
DATE: 22APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Customers wanting their application to determine whether or not a user is logged in or just attached to a file server can do so by checking the user's current bindery security access level. A user's security access level is a BYTE type which returns with the user's READ/WRITE access in the HI/LO nibbles, respectively. If a user is only attached to a file server their security access level is 0x00 or Anyone. If a user is logged in to a file server their security access level will be higher, such as 0x11 for logged or 0x33 for Supervisor. The following is an example...
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <nwconn.h>
#include <nwlocal.h>
#include <nwbindry.h>
#include <nwwrkenv.h>
void main (int argc,
char *argv[]) {
WORD oldConnectionID, newConnectionID, objectType, cN;
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NetWare SQL/XQL SHR Files
DOCUMENT ID: FYI.A.1409
DATE: 19APR91
PRODUCT: XQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
At the time of loading either NetWare SQL versions 2.01 or 2.11, or XQL versions 2.01 or 2.11, 3 share files are created. They are named DDITEM.SHR, SESSITEM.SHR and TABITEM.SHR. DDITEM.SHR refers to information about the Data Dictionary files, SESSITEM.SHR refers to information concerning sessions, and TABITEM.SHR holds information on the tables (or files).
These three files were originally created in the VAP environment and are used to store information about users when they login to XQL/NetWare SQL dictionaries. They are used as sort of a "bookkeeping" system for memory usage, by the NetWare SQL engine itself, so that RAM is used wisely. They normally reside in the SYSTEM directory and they must be flagged shareable, read, write. NetWare SQL writes to these files at load time and when users login to the NetWare SQL Engine.
If a customer, for safety sake, flags his SYSTEM directory shareable/read only, the NetWare SQL engine when loading, will return the error message "unable to create share files". This occurs in the NLM as well as the VAP. You may also see it in XQL for DOS when it tries to creates views and the directory is flagged non-shareable read only.
FYI: Xtrieve PLUS v4.01a and XQLP patches
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Xtrieve PLUS v4.01a and XQLP patches
DOCUMENT ID: FYI.A.1408
DATE: 19APR91
PRODUCT: XQLP
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I recently had a customer who said that after he applied the patches to his BTRIEVE.VAP version 5.10a and to Xtrieve PLUS version 4.01a, he would get server errors every time he attempted to start Xtrieve:
Error Sending on Network
And
Error Cannot locate Router
The problem occurred because he ran the XQLP version 2.11 patches that he downloaded from NetWire, and applied them to his ALREADY patched XQLP version 2.01.
I did duplicate this with the Btrieve VAP. However, I did not try the NLM nor DOS versions of Btrieve.
FYI: NLM Doc error / GetServerInformation v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NLM Doc error / GetServerInformation v3.11
DOCUMENT ID: FYI.A.4005
DATE: 16APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the NetWare Loadable Modules Library Reference Volume II, SDK release there has been an error on the include file in the example of the source code for the GetServerInformation function call.
Under GetServerInformation, the appropriate include file for this function call is #include <nwenvrn.h> and not <envrn.h> This function call can be found on chapter 19, page 35 and the include file can be located in \p\novc386\sdk\h.
FYI: Borland C v2.0 (Windows SDK) with C-int and Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Borland C v2.0 (Windows SDK) with C-int and Btrieve
DOCUMENT ID: FYI.A.1227
DATE: 16APR91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Do you have a copy of "Borland C++"??? which contains TurboC++, some of the MS Windows SDK, and tools from the Whitewater Group? Have you tested it and does it work with the C Interface for Windows API's? ..and while we're on the subject, using with Btrieve for Windows?
We haven't done any testing of the Borland product with the C-Interface for Windows yet. However, because there is a standard method of writing and calling DLL's under Windows, I anticipate no problems. The same should be true of our Btrieve DLL's.
FYI: Print Server Services from NLM v3.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Print Server Services from NLM v3.10
DOCUMENT ID: FYI.A.4004
DATE: 12APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The function calls to the Print Server Services, i.e. PSERVER, (such as PSLoginToPrintServer, PSGetPrintServerInfo,PSAttachToPrintServer PSGetPrinterStatus, etc...), are currently not in the CLib NLM.
Here are two choices that developers have if they need to access PSERVER services from an NLM:
1) If they have C Interface for DOS, they can port the Print Server Services function calls to the NLM environment. There are only a few functions that must be modified in order to get them to work.
2) Otherwise, he can wait to see if we provide these services in CLib... This is not a product announcement. Our official response is:
"We are currently investigating providing Print Server Services in the NLM environment".
FYI: Windows v3.0 DOS Box Help
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows v3.0 DOS Box Help
DOCUMENT ID: FYI.A.1226
DATE: 12APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I received some information from Development in Provo regarding help for people experiencing problems when they make NetWare shell calls from multiple DOS boxes under Windows. They should try using the XMSNET shell v3.02 or later and set ALL SERVERS=ON and SHOW DOTS = ON in the shell.cfg.
FYI: Flush Capture Timeout Count Prob
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Flush Capture Timeout Count Prob
DOCUMENT ID: FYI.A.1225
DATE: 12APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Refer to previous FYI on GetSpecificCaptureFlags API re: the TimeoutCount field being returned incorrectly.
This is a problem in the Windows C-Interface, the DOS C-Interface, and the DOS System Calls. It turns out that the System Calls documentation defines the FlushCaptureTimeoutCount as being hi-lo order instead of the correct order, lo-hi! Consequently, the DOS C-int and the Windows C-int pass on this value in the incorrect form.
This problem will be fixed in the bug-fix release to be sent out in the next few weeks for the Windows SDK. It will be fixed in the next release of the DOS C-Interface, as well.
FYI: Windows/Btrieve Locking Data Segs
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows/Btrieve Locking Data Segs
DOCUMENT ID: FYI.A.1224
DATE: 12APR91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you are writing a DLL under Windows which calls the Btrieve DLL, it has been recommended that you lock the current data segment before doing the Btrieve call (Windows doesn't automatically lock a DLL's data segment).
One way to do this is:
LockSegment (-1); /* -1 implies current data segment */
BTRCALL (...);
UnlockSegment (-1);
FYI: Windows NWCInt/W v1.x Capture Timeout Problem
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows NWCInt/W v1.x Capture Timeout Problem
DOCUMENT ID: FYI.A.1223
DATE: 12APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When you set the Capture timeout count to something other than 0 under DOS, then make a Windows call to retrieve the flushCaptureTimeoutCount, you get nonsense numbers. This has been reported as a bug.
FYI: Using Watcom Clock Function
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Using Watcom Clock Function
DOCUMENT ID: FYI.A.3902
DATE: 11APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
It is often important to run benchmarks or measure the time it takes for a process to execute. The following example program shows how to use the WatCom clock function to time a process down to 1/100 of a second. The clock function returns the number of 1/100 second increments since the program began execution.
double delta_t, start_time, end_time;
:
:
:
start_time = (double) clock();
Stat = Btrieve(BXGET_NEXT, PosBlk...); // process to benchmark
end_time = (double) clock();
delta_t = (end_time - start_time) / CLK_TCK;
:
:
printf("Received Records in %6.2f seconds", delta_t);
// Note: CLK_TCK is a constant equal to 100
FYI: Finding out if LU 6.2 is Loaded... v1.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Finding out if LU 6.2 is Loaded... v1.0
DOCUMENT ID: FYI.A.2804
DATE: 11APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetWare LU6.2 initiates conversations through a software interrupt which invokes the protocol boundary. The protocol passes a pointer across the protocol boundary. The "INT - 0x68" invokes LU6.2 and the LU6.2 initialization program establishes this interrupt vector at storage location 416 (416 equals 0x68-104 times 4) with the four-byte address of the LU6.2 interrupt handler. Transaction programs verify NetWare LU6.2 is loaded by comparing the seven-byte string located nine bytes before the address pointed to in the 0x68 vector to the string "APPC/PC".
FYI: NetWare Naming Service
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NetWare Naming Service
DOCUMENT ID: FYI.A.3103
DATE: 09APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you have developers needing documentation on the NetWare Naming Services, send them to the Developer Relations Group @ 800-RED-WORD. They will mail the documentation out to them...
FYI: OS/2 stuff
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: OS/2 stuff
DOCUMENT ID: FYI.A.3706
DATE: 08APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
It looks like the 1.3 version of the requester will not work with a Western Digital driver. More on this later...
The 1.3 version of the OS/2 requester is now shipping as part of the 3.11 NetWare package. THe OS/2 SDK that contains our APIs will also be shipping very soon. If you are an eager beaver(HA!), then you can test all your old OS/2 1.2 stuff against the new 1.3. It is installed on Yellow Sub in the lab.
There is now a way for the NetWare OS/2 1.3 requester and IBM OS/2 EE to work together. In case you may have forgotten, past versions of the requester would not work with IBM OS/2 EE(i.e. Communications Manager, Database Manager and LAN Server). But now, the NetWare OS/2 requester will support IBM OS/2 EE if you do the following:
■ use NETAPI and NETOEM DLLs provided by IBM(rather than those provided by Novell in the past)
■ IBM, not Novell bridges
■ Novell source routing on all servers and clients
This, with a little luck, will provide customers compatibility between OS/2 EE and NetWare.
FYI: Named Pipes Information, OS/2 Req 1.3
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Named Pipes Information, OS/2 Req 1.3
DOCUMENT ID: FYI.A.3705
DATE: 08APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NAMED PIPES - You can use the NET.CFG file to change the default configuration for the Named Pipes protocol. You can reconfigure any or all of the following features of Named Pipes (to use the default value for a feature, simply leave the line for that feature out of the NET.CFG file).
Client sessions Maximum number of connections any one workstation can establish with all Named Pipes servers. Must be a whole number between 3 and 128 (default=16).
Server sessions Maximum number of connections a Named Pipes server will support with all Named Pipes clients. Must be a whole number between 2 and 255 (default=32).
Service threads Maximum number of threads the Named Pipes server will allocate to service requests from all clients. If the server applications use blocking pipes, increase this value. If the server uses non-blocking pipes, use the default value for better performance. Must be a whole number between 1 and 32 (default=3).
The Named Pipes entry in NET.CFG should have the following syntax:
named pipes
client sessions #
server sessions #
service threads #
Replace the pound sign (#) with a valid number, as instructed above. Indent the lines under "named pipes," using either spaces or tabs.
NAMED PIPES FOR DOS
- Your OS/2 1.3 workstation may require up to a minute after you run the Named Pipes extender for DOS before it is ready to run a Named Pipes application. This can be especially significant in batch files, where Named Pipes applications may fail because they are executed immediately (with no pause) after running the extender.
- Step 3 on page 54 of the manual instructs you to put a line calling DOSNP.EXE into your AUTOEXEC.BAT file. You must add this DOSNP.EXE line after the line which loads IPX.COM and before the line which loads the DOS shell (usually called NETx.COM); otherwise, there may be a conflict between DOSNP.EXE and the DOS shell.
FYI: NLM related stuff, CLib 3.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NLM related stuff, CLib 3.1
DOCUMENT ID: FYI.A.3704
DATE: 08APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NLM- In version 3.0, the number of jobs that can be present in a Queue as in CreateQueueAndJobFile used to be 250. Now, in CLib 3.1, has been increased to 8191. This change slipped by many people before it was noticed.
NLM- Let's say you are running an NLM on file server A. Your NLM logs into file server B. Since B is now his current FileServerId and it is a remote server, an issued call to ScanBinderyObjectTrusteePaths will always return a 0(success), even if there are no more trustees. Since the CLIB checks the return code and assumes that since it was 0, it was successful and copies a string(in this case garbage) into the TrusteeIDs variable. The current workaround to this bug is to check the first character in the TrusteeID string. If it is NULL, then there will be no more trustees. This is only true on the remote instance, not the local one.
NLM- if you wanted to hook, for some reason, into the timer tick in an NLM, you will now be able to do so in NetWare 3.11. Under 3.11, you now have access to the ADVANCED.H functions and you would be able to use ScheduleInterruptTimerCallback API.
FYI: Btrieve v5.10a VAP and ArcNet
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Btrieve v5.10a VAP and ArcNet
DOCUMENT ID: FYI.A.3001
DATE: 08APR91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.10A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Short Description: The VAP goes away with 2 ArcNet LANs, if LAN A is disconnected.
Status: Not a Bug in Btrieve
SOLUTION
Reload the VAP
Btrieve VAP goes away under the following scenario:
Two workstations are attached to the server by 2 ArcNet cards. If LAN A is disconnected, Btrieve application on LAN B will return status 20; and "send failure in advertiser RC=FE" will be returned on the server console. Bconsole shows NetWare Btrieve is not loaded, however, USERLIST shows two connections for the Btrieve VAP. Basically, the VAP needs to be reloaded after LAN A is connected back.
This is not a Btrieve problem. If the network is in an erroneous state, Btrieve cannot do anything about it. Thus, returns "send failure in advertiser".
FYI: DOS FindFirst and Findnext APIs,
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: DOS FindFirst and Findnext APIs,
DOCUMENT ID: FYI.A.2606
DATE: 08APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here's almost the final word on the DOS Find-first Find-next INT 21 functions that caused problems for people on NW 3.0, and 3.1.
The file system was at fault and showed the most problems in 3.0, where, apparently every other directory entry was skipped when using this function pair.
In NW 3.1 however it had problems when getting into the extended directory structure, exceeding the number of outstanding searches on the file server. This can be somewhat controlled by bumping up the MAXIMUM OUTSTANDING NCP DIRECTORY SEARCHS from the default 51 higher to any number up to 1000. If the latter is not sufficient then there is a patch available that fixes this problem on NetWire.
As for NW 3.11, it works correctly, thus any Tree Walker software should function normally.
FYI: GetVolumeInformation (All NWCINT products)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: GetVolumeInformation (All NWCINT products)
DOCUMENT ID: FYI.A.2605
DATE: 08APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The call GetVolumeInformation is a 286 specific call. Not mentioned directly in the documentation until reading the GetVolUsage API that is its replacement for 386.
This is on our obsolete lists that we all got way back when, although the documentation fails to mention this in the GetVolumeInformation description.
FYI: iDSize in XQLConvert (XQL v2.11)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: iDSize in XQLConvert (XQL v2.11)
DOCUMENT ID: FYI.A.1720
DATE: 08APR91
PRODUCT: XQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using the XQL v2.11 functions XQLConvert or xConvert to convert a displayable formatted ASCII value into its internal format, you are supposed to set the iDSize parameter to the display size of the formatted value. This should be set to the actual length of the string you are passing in to be converted, not the maximum display size of any data in that field, which is what would be returned by an XQLDescribe call.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
NetWare 3.11 is now in the hands of the general public. In 3.11 we are supporting various namespaces. What this means to us is we can know do functions such as open , opendir and chdir with a path that belongs to the new namespace, well almost. These functions have been designed to use the NetWare path. A NetWare path does not look like a DOS path at all it is quite a bit more flexible consisting of a count and a string of elements (path). The count is the number of elements that are in the path. Each element contains the length of the directory or filename plus the directory or file name. The NetWare path does not contain the Server or Volume information as the functions that use these paths will know them by connectionIDs and volume numbers.
So a DOS path that looks like this:
server/volume:dir1/dir2/filename
The NetWare path count will be 3 and the NetWare path will be:
"\0x3dir1\0x3dir2\0x8filename"
As we all know the functions I talked about earlier do not require you to pass in this odd looking path. Each of these functions call a PathParser function on their path parameter. CLib presently only has one PathParser,which converts a DOS path to a NetWare path. So how do we support the other name space? CLib supplies a new function called FERegisterNSPathParser.
The Function FERegisterNSPathParser(T_PathParseFunc parser) will register the parser function for the current name space. If you wish to register a parser for another namespace you need to create a function to parse that namespace's path. This function must follow the prototype that can be found in the new NLM Reference 7-61,or in FILEENGD.H.
Your parser must accept the path of that namespace such as NFS and translate it into an internal NetWare path. The internal NetWare path does not have the server or volume name in it. So your function must get and pass back the FilerServerID, the Volumenumber, a directorynumber (if your path is offset from this number else the directory number of the root), the NetWare path count, and the NetWare path.
The current namespace must be set to the appropriate namespace before you call FERegisterNSPathParser. The current namespace can be set with a call to SetCurrentNameSpace. Once the new path parser is registered, the functions such as open will call the new path parser to translate the path parameter into its NetWare counterparts.
FYI: C Interface NWCINT/W v1.2 - GetDLLVersion
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: C Interface NWCINT/W v1.2 - GetDLLVersion
DOCUMENT ID: FYI.A.2604
DATE: 02APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The GetDLLVersion API has its prototype in NWMISC.H while the DLL NWCORE.DLL contains the actual function. This poses minor inconveniences for a client to find which DLL they must reference in the IMPORTs of the DEF file.
FYI: DSWIN Files
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: DSWIN Files
DOCUMENT ID: FYI.A.1610
DATE: 02APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Where should I unzip those DSWIN files? Here's the answer, taken directly out of the NetWare Application Notes, January, 1991 issue:
DSWIN1.ZIP SHGEN-1
DSWIN2.ZIP SHGEN-2
DSWIN3.ZIP UTIL-1
DSWIN4.ZIP UTIL-2
Unfortunately, the readme files included on these disks do not mention where the files should be unzipped to. The right hand column above indicates the name of the subdirectory the files should be unzipped to, or the LABEL of the diskette where these files are unzipped. To build a SHGEN-1 diskette, do the following:
FORMAT A:
LABEL A:
SHGEN-1 (enter this at the prompt from the LABEL program)
PKUNZIP DSWIN1.ZIP A:
FYI: MapDrive Not Freeing Memory
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: MapDrive Not Freeing Memory
DOCUMENT ID: FYI.A.1609
DATE: 02APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a bug in the MapDrive function in the C Interface-DOS v1.2 libraries in which MapDrive allocates memory that it never frees. This is usually only a problem if MapDrive is called repetitively, as the machine it is running on will soon run out of memory. This memory is freed, however, when the application exits, by the built- in C exit routines.
The source file (...\SOURCE\DIRECTORY\MAP.C) must be changed to fix the bug, but the changes are simple. There are five locations which return values after the memory is allocated. They are:
Before each return function, the pathVariable should be freed. For example, the first return should be changed to the following:
if( *driveLetter <= lastLocalDriveLetter )
{
free(pathVariable);
return( NO_DRIVE_AVAILABLE );
}
There are more elegant ways to fix this, but this one requires the least amount of source change.
This has been reported as a bug (#890).
FYI: Windows API v1.0 Release Notes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows API v1.0 Release Notes
DOCUMENT ID: FYI.A.1222
DATE: 02APR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the release notes for the Windows API SDK, it states that you should put your LIB files in a directory in your PATH environment variable. This is incorrect. You don't need your libraries in your PATH; you just need to have them in a directory designated by your LIB environment variable.
FYI: TBMI, What, When, How and Where - Windows v3.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: TBMI, What, When, How and Where - Windows v3.0
TBMI (Task-switching Buffer Manager for IPX/SPX), as most people know, is Novell's current solution for supporting IPX/SPX communication from a DOS box under Windows. It is being distributed free via NetWire and contains documentation describing how to load TBMI (before windows) and TASKID (inside of each DOS box doing direct IPX/SPX calls).
There has been some confusion as to how you can tell whether you need to use TBMI with a particular application. One way is to simply run the application several times without TBMI and see if it hangs. If it does, try it again with TBMI. Not a very elegant approach!
You can use the diagnostics switch built in to TBMI to easily determine whether it makes SPX calls. Follow this procedure:
Load TBMI
Load Windows
Open a DOS Box
Load TaskID
Run your application (make sure you test all possible code paths)
Run TBMI /d (for diagnostics)
If the max ECB's used count is greater than 0, than the application did indeed make an SPX call and you need to load TBMI/TASKID when using this application. If the max ECB's count is still 0, then you do not need to load TASKID before running this program. Simple, yes?
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
Just a word of warning. If the component that you are looking for does not exist within the componentList this function will return a componentOffset that is trash and should not be used in subsequent Diagnostic calls.
A fix would be to change the return() statement in the code from:
This would bring the workings of the function to more closely match the documentation. If the component is not found return a 0xFF else return the component.
FYI: PATCH31.NLM v13-Feb-91
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: PATCH31.NLM v13-Feb-91
DOCUMENT ID: FYI.A.3102
DATE: 21MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Later today, we'll be putting an NLM called PATCH31 on CompuServe in the NOVA forum in Data Library 16. This NLM corrects several bugs in v3.10 of CLib for NetWare v3.10. Below is the README file which is accompanying the PATCH31...
PATCH31.NLM
This NLM patches several functions in CLib v3.10. See the list of functions below that are replaced by the PATCH31 NLM.
I. Installing and Removing PATCH31.NLM
To install 'PATCH31.NLM', load it as you would any NLM. To remove 'PATCH31.NLM', unload it as you would any NLM. When you unload 'PATCH31.NLM', the code that was patched will be restored to its old values.
When the 'PATCH31.NLM' is loaded, it identifies itself as 'Patch ID 13-Feb-91'.
WARNING: Do not unload 'PATCH31.NLM' while the CLib is being used by other NLMs.
II. Functions Replaced by PATCH31
AddSpaceRestrictionForDirectory
AFPGetEntryIDFromPathName
AFPGetFileInformation
AFPSupported
BeginTreadGroup
ChangeDirectoryEntry
chdir
close
closedir
DownFileServer
free
getcwd
GetFileServerID
GetServerInformation
GetVolumeName
ModifyInheritedRightsMask
opendir
readdir
ReadPropertyValue
RenameBinderyObject
ScanBinderyObject
ScanProperty
SetFileInfo
SetDirectoryInfo
stat
utime
VerifyBinderyObjectPassword
WritePropertyValue
FYI: Disk Space, Windows v3.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Disk Space, Windows v3.0
DOCUMENT ID: FYI.A.3101
DATE: 18MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a configuration you can set under Windows to tell it to use a temporary swap file. If you use this option, the swapfile is deleted when you exit Windows.
FYI: Windows and Windowed DOS Boxes
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows and Windowed DOS Boxes
DOCUMENT ID: FYI.A.2603
DATE: 15MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
To all your amazement we have a workaround for the problem running our utilities (and probably other applications) in a Windowed DOS box.
Just to recap - running several of our utilities in a Windowed DOS box (as opposed to the FULL screen DOS box) caused major problems, such as reboots and locking up the machine.
The FIX: use TBMI.COM and TASKID.COM when running a WINDOWED DOS BOX. Ya I know.. what's the difference between a FULL screen DOS box and a Windowed DOS box. I thought it was just the size of the window. Apparently not. In any case it works with the TBMI/TASKID support. NOTICE: the FULL screen DOS box does not require TBMI/TASKID.
FYI: Stack Overflow in an NLM v 8.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Stack Overflow in an NLM v 8.0
DOCUMENT ID: FYI.A.4003
DATE: 14MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
During your execution of an NLM, you might get an abort error message indicating your stack was overflowed. If such an error is encountered, do the following things:
- compile without the /s option, note that /ox implies /s!
- set #pragma on(check_stack);
Pragma is a compiler directive that allows you to specify certain compiler options.
By setting #pragma on(check_stack), the compiler generates the run time call to a stack checking routine at the start of every routine compiled while this option is in effect. Thus, you need to declare this pragma BEFORE and function declarations are made. Also, you must declare it in every source file. If you want stack checking everywhere, remove the /s option. This runtime checking routine will issue an error if a stack overflow occurs when the routine is invoked. If you set it to OFF, then overflow is ignored. If such an error does occur, you need to increase your stack size. To increase your stack size, you need to set the STACK option with a larger size (ex: OPTION STACK = n) and relink your program.
FYI: Scan Bindery Object Trustee Paths, CLib 3.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
NLM- Let's say you are running an NLM on file server A. Your NLM logs into a file server B. Since B is now your current FileServerId and it is a remote server, an issued call to ScanBinderyObjectTrusteePaths in CLib 3.1 will always return a 0(success), even if there are no more trustees. Since the CLIB checks the return code and assumes that since it was 0, it was successful it will then copy a string(in this case garbage) into the TrusteeIDs path var. The current workaround to this bug is to check the first character in the TrusteeID path string. If it is NULL, then there will be no more trustee paths. Again, this is only true on the remote instance, not the local one.
FYI: Disk Space, Windows, OS/2 and the Universe
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Disk Space, Windows, OS/2 and the Universe
DOCUMENT ID: FYI.A.3204
DATE: 14MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Windows 3.0 and OS/2 1.2 create files that it can swap your memory out into and these "swapfiles can be very large". The OS/2 file is called swapper.dat and the windows one is called windows.swp. Since these files are used by OS/2 and Windows all the time and you are expected to run only in one or the other they leave these files on the disk expecting that you will need them. So for those of you who switch between windows and OS/2 might want to look on your hard disk for these two files and delete the one you don't need at the moment. They are created new if not there.
FYI: C' address lesson, NWCINT/W v1.xx
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: C' address lesson, NWCINT/W v1.xx
DOCUMENT ID: FYI.A.2602
DATE: 14MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here's a good one. If you are using explicit type cast in your function calls to a function that expects a point, be careful. The cast will assume you know what you are doing and override the prototype (which we all use religiously). Example:
prototype for a function is: return_type func1(data_type *);
^
|
pointer expected
then calling the function as:
func1((data_type *)var);
will pose problems if 'var' is not defined as a pointer. The correct syntax for this situation is;
func1((data_type *)&var);
Something to be aware of when explicit type casts are used.
FYI: Close after Reset under Btrieve NLM v5.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Close after Reset under Btrieve NLM v5.11
DOCUMENT ID#: FYI.A.2302
DATE: 14MAR91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I turned in a bug about this (bug #466), but you might want to hear about it before the patch comes out:
In the Btrieve NLM (v 5.11, patched to #84), a close after a reset returns a status 20 instead of a status 3. This is incorrect because Brequest has not been unloaded, and an subsequent open operation works fine.
FYI: C Create w/NULL key
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: C Create w/NULL key
DOCUMENT ID#: FYI.A.2301
DATE: 14MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The C create example in the Btrieve Programmer's Manual (p. C-9) needs to be amended if you want to have a null key value:
The declaration of the KeySpecType struct doesn't include the byte necessary to declare the null value if that key is going to have one, but if there's no null value, that example is fine.
The change in the KeySpecType fields should be from
char reserve1 [5]; to char null_val; char reserve1 [4];
FYI: Print API problems Net3.x and up
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Print API problems Net3.x and up
DOCUMENT ID: FYI.A.1511
DATE: 14MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There have recently been a rash of problems reported with print outs using the print APIs being followed by garbage. If you are using the new 3.01x shells and you use a GetDefault(Specific)CaptureFlags and then issue a start capture, endcapture, or flush, every other print out will be followed by a bunch of garbage. This is due to the fact that a GetDefaultCaptureFlags call LongSwaps the printer setup and reset buffers before the function returns, but the parallel function SetDefaultCaptureFlags does not do the LongSwap back before updating the shell. This problem only occurs with the new shells. I have turned it in as a bug.
FYI: DOS 5C function call
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: DOS 5C function call
DOCUMENT ID: FYI.A.1510
DATE: 14MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
DOS function 5C (lock/unlock file region) does not work the same under NetWare as it does under DOS with SHARE loaded. The three parameters passed on this call are FileHandle, StartBYTE, and Length. Under NetWare, you have to lock the EXACT same StartBYTE and Length in order for the locking to work properly, if the sections overlap, but do not match exactly, the lock with be successful to the 2nd workstation. Under DOS and SHARE, if the sections overlap, the lock will NOT be successful from the 2nd workstation.
FYI: Btrieve v5.10+ File Owner Names
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10+ File Owner Names
DOCUMENT ID#: FYI.A.1210
DATE: 14MAR91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here are the owner names assigned by NetWare to Btrieve files when they are created on a network drive using the different flavors of Btrieve (Workstation, NLM, VAP). You can verify this by doing an (NDIR filename) command.
Workstation (DOS, Windows, OS/2): NetWare assigns your userid as the owner (e.g. "JSMITH").
NLM : NetWare assigns the server name as the owner (e.g. "AUS-TEKPRO3")
VAP : NetWare assigns the VAP's userid as the owner(i.e.,"BTRIEVE_SERV")
FYI: 3C503 Default Configuration OS/2-1.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: 3C503 Default Configuration OS/2-1.2
DOCUMENT ID: FYI.A.3203
DATE: 13MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
3C503 Default Configuration the way our OS/2 1.2 requester expects it to be...
I/O - 300 (HEX)
MEM - C8000 (HEX)
INT - 3
NO DMA
BNC (THIN WIRE)
NOTE: if you want thick wire you need to add 1=DIX to the 3C503 lan drive line in the config.sys file.
device=C3503.SYS 1=DIX
FYI: 3270 Tools v1.5
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: 3270 Tools v1.5
DOCUMENT ID: FYI.A.2803
DATE: 13MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The NetWare 3270 HLLAPI Programmer's guide refers "HLSMGR.EXE" as "SMGR.EXE" and "HL3270cp.exe" as "3270cp.exe" and I don't know the reason for it. They probably should be prefixed with "HL", but they're not. Don't get them mixed up!
FYI: Xtrieve PLUS v4.01 security
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve PLUS v4.01 security
DOCUMENT ID#: FYI.A.1903
DATE: 13MAR91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
(Note - Btrieve version 5.10)
When the BUTIL -stat operation (Btrieve operation 15) is performed on any Xtrieve data dictionary file (DDF file), what appears on the screen is the internal structure of the file. (Appendix B of the Xtrieve PLUS manual contains the internal structures of each of the seven data dictionary files.)
When security is installed on a set of Xtrieve's dictionary files, Btrieve assigns an owner name (NOT documented in the manual) to each of the files. This owner name is the same as the password of the Master user in Xtrieve. As a consequence, if a non-Master-user performs the BUTIL -stat operation (or Btrieve operation 15) on a DDF, Btrieve returns a status 51 (Invalid Owner Name). The Master-user would have to provide the password as the owner name for the file. If this Master Password is changed, the owner names on the DDF files are changed to reflect the change in password.
In other words, when sceurity is not installed, the DDFs can only be accessed in Read-Only mode without having to provide the owner name. When security is installed, to have any kind of access to the DDF files, the user must know the owner name.
FYI: OS/2 v1.2 and v1.3 Drive Mappings
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: OS/2 v1.2 and v1.3 Drive Mappings
DOCUMENT ID: FYI.A.1220
DATE: 13MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There are some major differences in how network drive mappings are handled under OS/2 as compared to DOS. When you log in under OS/2 and have your login script map drives (by the way, you cannot map search drives under OS/2), it will create a map root to whatever directory you specify.
For example, if your login script does:
MAP f:=FS1\SYS:dir1\dir2
If you do a MAP in an OS/2 window you will see
DRIVE F:= FS1\SYS:DIR1\DIR2 \
When the \ is at the right, this means that a map root is in effect and you cannot access any subdirectories below DIR2 when using the F: drive.
This definitely reduces the flexibility of the login script when mapping drives. The workaround is to map drives to all of the volumes you will use in your login script and then, in your autoexec batch file, go to each drive and change directories to the directory you want that drive mapped to.
FYI: XQL version 2.11, XDDCreate function
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL version 2.11, XDDCreate function
DOCUMENT ID#: FYI.A.1808
DATE: 12MAR91
PRODUCT: XQL
PRODUCT VERSION: ERSION
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When creating a table using the primitive functions one follows the description of the bFldBuf parameter described in Chapter 7 page 36. For those of us who are avid C programmers be aware that the Field Name must be 20 characters long. The manual says that you can NULL terminate the string and that is true but XQLP is expecting a 20 byte field to parse regardless of where the NULL is.
FYI: NetCheck NLM v1.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NetCheck NLM v1.0
DOCUMENT ID: FYI.A.4002
DATE: 11MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using Netcheck NLM by Numega Technology, a problem of cleared connections might occur when Netcheck NLM is running on the server.
If this problem occurs, do the following:
There are 3 parameters /r/p/w and if you remove /w, the problem with cleared connections will not occur.
/w is to prevent other NLMs from writing into write-protected memory.
FYI: HLLAPI and Memory (HLSMGR (HLLAPI MANAGER)) v2.2.a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: HLLAPI and Memory (HLSMGR (HLLAPI MANAGER)) v2.2.a
DOCUMENT ID: FYI.A.2802
DATE: 11MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Some functions in HLLAPI require the use of large amounts of storage. If your application will use Function 23, Start Host Notification, you may want to use some memory obtained from the HLSMGR for this function. Or, you may provide Function 23 with the address of memory area in your program. To obtain memory from HLSMGR at DOS prompt enter HLSMGR n, where n is number of bytes of memory to be managed by the HLSMGR. The number of bytes can be from six to the total amount of free memory remaining before the HLSMGR program is executed and subtract 30 kilobytes approximately for the HLSMGR itself.
FYI: PCOX APIs (IBM LOW LEVEL API'S) v1.5
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: PCOX APIs (IBM LOW LEVEL API'S) v1.5
DOCUMENT ID: FYI.A.2801
DATE: 11MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Novell's PCOX products supports three IBM API's: the Low Level Language API (LLLAPI or LLAPI), the High-Level Language API (HLLAPI), and the Entry-Level Emulation High Level Language API (EEHLLAPI). All three IBM API's use a software interrupt-driven technique similar to the Novell's PCOX API. The PCOX interface uses DOS Interrupt 6Fh by default where as IBM LLLAPI uses Interrupt 7Ah. When an Interrupt 7Ah is invoked, CXIISAPI which is an intercept program resides in memory between the PCOX control program and the IBM HLLAPI application translates it to an equivalent PCOX 6F interrupt and converts to register usage appropriately. The interrupt is then processed as though it were a normal PCOX API function call.
FYI: Execute only files in Windows v3.0, NWCINT/W v1.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Execute only files in Windows v3.0, NWCINT/W v1.x
DOCUMENT ID: FYI.A.2601
DATE: 11MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When a windows application is flagged as 'execute only' it will not run in Windows. It will not load or by any means start its execution. The reason for flagging a file 'execute only' is to protect is against copyrights etc. Lack of capability will definitely lead to future problems (more calls that is).
This problem has been reported to Provo.
FYI: Btrieve v5.10 Update/Delete Documentation
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 Update/Delete Documentation
DOCUMENT ID#: FYI.A.1714
DATE: 11MAR91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The following information should be included in the Btrieve Operations chapter of the Btrieve Programmer's Manual, in the sections for Update and Delete: In order to update (delete) a record while inside a Btrieve transaction, that record must have been retrieved while inside that transaction, and not before.
Also, status 83 - Read Outside a Transaction, should be included in the list of possible nonzero status codes that may be returned by an update or delete operation.
FYI: MS C/Turbo C, Memory Models, and Btrieve v4.11+
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: MS C/Turbo C, Memory Models, and Btrieve v4.11+
DOCUMENT ID#: FYI.A.1405
DATE: 11MAR91
PRODUCT: Btrieve
PRODUCT VERSION: 4.11+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This FYI is to help you with one common complaint that you might hear from yourself as well as a customer, when you are programming with Microsoft C or Turbo C and using Btrieve versions 4.11, 5.00 and 5.10a. The actual interfaces used are MSCXBTRV.C and TURCBTRV.C.
Everything appears to be working correctly; the application compiles without an error and seems to run OK. Btrieve returns a status 0 on all of the calls, but nothing is actually being done.
If this happens, you might want to check the memory model that is being used. It could be that the application is compiled with a large memory model, but the interface hasn't been changed; you'll need to uncomment the line in the interface for LARGE model.
So, /* #define LMODEL */
should really be
#define LMODEL
if you're compiling with Large Model.
FYI: Overview of IPX/SPX Init in Windows NWCInt/W v1.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Overview of IPX/SPX Init in Windows NWCInt/W v1.1
DOCUMENT ID: FYI.A.1219
DATE: 11MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using the Windows API communications calls (IPX/SPX), the memory allocation is handled quite differently than with the DOS C-Interface.
As you know, IPX and SPX require that ECB's reside in low memory (below 1 meg). Rather than have your Windows program handle the copying of data from your Windows data segment to low memory, the Windows API's will do this for you. It will also handle the management of the ECB's for different tasks running concurrently under Windows. This is great but it complicates the Initialization calls somewhat. Below is a brief description of new parameters and return codes for the initialization functions. Most of this information is described in great detail in chapter 5 of the SDK manuals.
For both IPXInitialize and SPXInitialize, there are 3 new parameters:
IPXTaskID :allows the IPXSPX.DLL to maintain resources for different tasks
Their are 3 different values for this parm; each tells IPX/SPX to manage memory differently. In all cases, the return value is the TaskID for that block of memory and must be sent on all subsequent calls to IPX/SPX.
0x0000000: This allocates 1 block of memory for each application
0xFFFFFFE: This allows each application to have multiple allocations of memory.
0xFFFFFFF: This allows a DLL (a Print Server, for example) to manage a pool of ECB's for multiple applications that are making calls to the DLL.
maxECBs :specifies the maximum number of outstanding ECB's that will be submitted to IPX
maxPacketSize: Maximum size packet that can be sent by your application
Also there is a new function call, IPXSPXDeInit (), which deallocates all memory associated with a particular TaskID.
New Return Codes for SPXInitialize and IPXInitialize
Under the DOS C-Interface, SPXInitialize returned 1 of 2 values, either SPX was installed (255) or SPX was not installed (0). NOTE that a non-zero status in this case indicates success!!
Under the Windows C-Interface, because there are more variables regarding initialization, there are other return codes which indicate failure to initialize. Some of them I'm not sure of the specific cause.
NO_MGM_MEMORY : 0xF0
IPXSPX_NOT_INIT : 0xF1
NO_DOS_MEMORY : 0xF2 Not enough low memory available.
NO_FREE_ECB : 0xF3
LOCK_FAILED : 0xF4
OVER_MAX_LIMIT : 0xF5 You are asking for too many ECB's to be allocated.
IPXSPX_PREV_INIT: 0xF6 You have previously initialized IPX or SXP.
Note: There is a good communications example, WinChat, which will be shipped with the new Windows C-Interface SDK.
ADDENDUM: Thu 14-Mar-91 1:38pm David Garrison Subject FYI - Windows API Comm Errors NWCInt/W v1.1
This is an addition to a previous FYI sent out the first week of March, 1991, titled Windows IPXSPXInit Changes.
New return codes for the Communication Initialization changes were partially documented in the previous FYI; here is more information on those codes.
NO_MGMT_MEMORY : 0xF0 means that the DLL was not able to allocate or reallocate memory for its instance table NO_FREE_ECB
: 0xF3 will occur when you have maxECBs outstanding and try to submit another ECB to IPX
LOCK_FAILED : 0xF4 occurs when the DLL is not able to lock the memory for the instance table
OVER_MAX_LIMIT : 0xF5 means that the packet size you have requested is larger than that allowed by the topology you are using
FYI: OS/2 v1.2 API's Connection Number Type Mismatch
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: OS/2 v1.2 API's Connection Number Type Mismatch
DOCUMENT ID: FYI.A.1218
DATE: 09MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the header file for the OS/2 API's, the CONNECTION NUMBER is defined as different types for the following calls. Obviously, defining the variable as either BYTE or WORD will generate a compiler warning.
/* GetConnectionNumber */
extern WORD far pascal NWGetConnectionNumber(
WORD, /* Connection ID*/
->> WORD far * ); /* Server connection number*/
/* GetConnectionInformation */
extern WORD far pascal NWGetConnectionInformation(
WORD, /* Connection ID*/
->> BYTE, /* Server connection number*/
char far *, /* Client object name*/
WORD far *, /* Client object type*/
DWORD far *, /* Client object ID*/
BYTE far * ); /* Client login time*/
A good way to handle this in your program is as follows:
WORD connectionNumber
ccode = NWGetConnectionNumber(connectionID,
&connectionNumber);
ccode = NWGetConnectionInformation( connectionID,
(BYTE) connectionNumber,
objectName,
&objectType,
&objectID,
loginTime);
FYI: NetWare SQL Front-Ends
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare SQL Front-Ends
DOCUMENT ID#: FYI.A.8001
DATE: 08MAR91
PRODUCT: NetWare SQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Here's a list of third party front-ends for NetWare SQL:
RaSQL Development Tool Communications Horizons
212-222-2222
SQLFile Development Tool Vinzant
219-763-3881
R&R Reporting Tool Concentric
508-366-1122
Planet Network Design Tool Network Communication
201-307-9000
ISICAD Computer-Aided Design ISICAD
714-533-8910
EnFOLD Document Management Network Management
800-526-8737
1-2-3 Spreadsheet Lotus/Novell
Datalens 800-REDWORD
FYI: Corrupted Data Buffer with Microsoft Basic PDS 7.X & BC7RBTRV.OBJ
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Corrupted Data Buffer with Microsoft Basic PDS 7.X & BC7RBTRV.OBJ
DOCUMENT ID#: FYI.A.2101
DATE: 07MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There seems to be a problem with the data buffer being returned on Btrieve GET operations using the BC7RBTRV.OBJ interface. The symptoms are spaces and other characters being inserted into the data buffer at various byte positions. The problem seems to be related to the BASIC compiler options, particularly the combination of the /o and the /fs options. The /o compiler option tells the compiler to use the default stand alone library instead of the run-time library. The /fs parameter enables the use of far strings. If you receive a call from a customer with a similar type of problem, have them recompile their program without the /fs parameter. If the problem goes away then you can send them the latest BC7RBTRV.OBJ interface dated 11-26-90.
This interface can be found in the aus-tekpro3\sys:pat\btr\dos\510\basic7 directory. This interface is a patched version of the BC7RBTRV.OBJ interface dated 4-13-90 which fixed the following problems:
1. Bytes 59-60 of the databuffer were being overwritten.
2. Chaining to another program would hang the workstation.
FYI: Windows Trick/Single Instancing
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows Trick/Single Instancing
DOCUMENT ID: FYI.A.1608
DATE: 07MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
To keep a Windows user from popping up a second copy of your program, use the following code:
if (!hPrevInstance)
{
.
. // Set up and register classes, etc., here
.
}
else // Must be old copy of program running
{
// Get hWnd handle of previous instance's main Window
// Tell previous instance to pop its window to the top
BringWindowToTop(hWnd);
// Exit this instance of program
return 0;
}
This is especially useful if, for instance, you are allocating resources that cannot be allocated dynamically (ex: if you needed to open a specific, well known, IPX socket that was hard-coded into your program; or your program needed access to hardware whose access was not synchronized, or was synchronized incorrectly, by Windows).
FYI: EMS vs XMS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: EMS vs XMS
DOCUMENT ID: FYI.A.1607
DATE: 07MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
To understand what EMS and XMS are requires an understanding of the history of PC architectures. Once upon a time, there was an operating system called CPM. CPM machines could address a whopping 64K! This was all that the Intel 8080 processor could address (another processor, the Zilog Z-80, had something to do with this as well, but I won't go into that).
Then came the 8088 processor. It could address 1 MB of memory by using segment registers. This is when DOS and the IBM PC came into the picture. DOS was based on the 8088 processor and, therefore, DOS could also address 1 MB of memory. The "lower" 640K of address space (0-9FFFF hex) was reserved for RAM and the upper 384K (A0000- FFFFF hex) was reserved for ROM.
Then came the 8086 processor. All it does different from the 8088 is process 16-bits at a time, which makes it somewhat faster.
Then came the 80286 processor. This is when extended memory came into the picture. This is also when the IBM AT was introduced. The machine could now see up to 16 MB of memory, but DOS couldn't! So what good was this extra memory address space? Well, not much, for a long time. All it could really be used for is a ram disk or disk-cache, and then only by one program. The memory had to be accessed by switching the 80286 to protected mode, and this was incompatible with DOS and the normal memory addressing mode.
Then came Expanded memory (aka EMS, EEMS, LIM memory, Lotus memory, bank-switched memory, committee-memory). This memory was placed on a special EMS card and a special EMS driver was loaded in the config.sys at start-up time. EMS memory could be switched in and out of the normal 1 MB address space of 8088-and-up processors and programs could share the memory without running over each other.
Then came the 80386 processor. It was compatible with the 8088/8086 because it normally ran in the "1 MB mode" and the 80286 processor because it could run in protected mode. But, it had, of course, a new mode, sometimes referred to as Enhanced mode. Enhanced mode could address 4 GB (1 GB = 1,024 MB). In addition, the 80386 could bank-switch memory. This allows 80386 machines to emulate EMS memory, with a special EMS driver. But, this EMS memory is not safe from programs that access extended memory! That's because the 80386 is using the same extended memory for its emulation, and there's no control (in DOS) to keep other programs from stepping on that memory.
So what happened to XMS memory? Well, XMS memory is really extended memory, with a driver (usually HIMEM.SYS). The driver allows programs (who all must talk to the driver) to share extended memory much like they can share expanded memory. There is one drawback to this method, though. If a program doesn't go through the driver, the driver can't do anything about it. In EMS memory, the only way to access the memory is through the EMS driver. In XMS memory, there are "back-doors" that cannot be shut.
So how do I remember whether I need/have EMS or XMS memory? To begin with, associate XMS memory with extended memory. ExTended memory (notice the 'T') came with the IBM At (notice the 't') and is accessible via the 80286 protected mode. Next, associate EMS memory with expanded memory. ExPanded memory (notice the 'P') came when Lotus, Intel, and Micrsoft formed a Pact (notice the 'P'). It's accessible via EMS drivers, and requires special hardware on 8088/8086/80286 machines, or can be emulated on 80386 machines.
So what applications use what memory? Btrieve for DOS 5.10a and up correctly use expanded memory. Older versions of Btrieve for DOS can use expanded memory, but should not share it with another application (use the /e switch to keep older versions from trying to use expanded memory, especially when another program needs to use it as well). NetWare uses extended memory. Microsoft Windows 3.0 uses either extended memory or expanded memory, and can emulate both types in DOS boxes. Lotus 123 v2.01 and many other spreadsheet programs use expanded memory. DOS extenders and programs that use DOS extenders (like Lotus 123 v3.xx) use extended memory. Ram disk utilities typically use extended memory (especially VDISK, supplied with most DOS machines). Disk caching software can usually access either extended or expanded memory.
FYI: AFP Name Length
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: AFP Name Length
DOCUMENT ID: FYI.A.1606
DATE: 07MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The documentation for AFP Services conflicts with the documentation in Name Space Services for Mac name spaces. The Mac name space structure allows Mac file names to be 32 bytes in length, with a preceding length specifier. The AFP Services documentation states that Mac names may not be longer that 31 bytes in length. That's wrong. Not only can Mac names be 32 bytes in length, but the AFP structures set up in NAT.H allow for 32 byte names as well. The only time this presents a problem is if your code copies one of these names into a buffer initialized to only 32 bytes. So set up your own buffers to 33 bytes and all is well.
As an additional tidbit, the Inside Macintosh documentation (II-81) says a file name can be 1 to 255 printing characters, but also states that the Finder will generate an error for any names longer than 64 bytes! The Apple-Talk File Protocol (AFP) allows only 32 character names (Inside Macintosh, IV-183).
FYI: IPXGetInternetworkAddress
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: IPXGetInternetworkAddress
DOCUMENT ID: FYI.A.3307
DATE: 06MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
It has been reported that IPXGetInternetworkAddress only returns the node address if the shell is not loaded. This is not correct. The network address will also be reported if the station receives a broadcast message from the local server. However, a developer that requires the network address should not count on a broadcast being received by the station. The developer's application should send out a RIF (Routing Information) packet. This will cause the server to respond and broadcast its existence on the network.
FYI: SPX Client Applications in a Non-Dedicated DOS Box
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: SPX Client Applications in a Non-Dedicated DOS Box
DOCUMENT ID: FYI.A.3306
DATE: 06MAR91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
SPX client applications should not be written to run in the DOS Box of a non-dedicated file server. SPX server applications will normally function properly, but may seriously degrade operating system performance. The SPXEstablishConnection call, required for client communications with the server, conflicts with routing buffers already set aside by the operating system. A call to SPXEstablishConnection will return a status 255 "No Response From Server".
FYI: Btrieve NLM v5.11 & v5.15 Backups
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve NLM v5.11 & v5.15 Backups
DOCUMENT ID#: FYI.A.1005
DATE: 06MAR91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you are running the Btrieve NLM v5.11 or v5.15 under NetWare v3.10a or NetWare v3.11 and if in your BSETUP application you have specified a value greater than 0 for the Number Of Transactions a BTRIEVE.TRN gets created in the \SYS:SYSTEM directory. When the Btrieve NLM is loaded either manually or with BSTART.NCF the BTRIEVE.TRN file is opened by the Btrieve NLM and kept open until the Btrieve NLM is unloaded from server memory. It remains open for the entire time because of performance considerations. However, because it remains open all of the time, when you run your backup utility it will fail at the point you attempt to Close & then Reopen the Bindery.
You then have two possible options available:
1. Set Number Of Transactions = 0 so the BTRIEVE.TRN file isn't created or used when the Btrieve NLM is loaded. However, no workstations may issue a Begin transaction operation.
2. Unload the Btrieve NLM before you run the backup utility.
FYI: Status 85 on Btrieve v5.10 Update of Record Locked by a Transaction
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 85 on Btrieve v5.10 Update of Record Locked by a Transaction
DOCUMENT ID#: FYI.A.2004
DATE: 05MAR91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve Documentation states that if a file is locked by a transaction and another application tries to update a record in this file, upon issuing the update the updating application will wait until the transaction is complete to perform the update. This is true for Btrieve for DOS Networks, but not for the VAP or NLM. Upon issuing the update, the VAP and NLM will return a status 85 (file in use).
When explaining locks, the Btrieve documentation also states that if a file is locked when an application attempts to open it, Btrieve normally waits until the file is available before executing the Open operation unless a nowait lock (+200 or +400) is specified on the open. This is opposite of what actually happens. Btrieve will, by default, return a status 85 if a file is locked when an application tries to open it. In order for Btrieve to wait, you must specify a wait (+100 or +300) on the open.
This brings up one more topic. If a file is in use by a transaction and another application tries to open it, Btrieve for DOS Networks will return a status 85 on the open, but the VAP or NLM will open the file successfully.
FYI: Xtrieve v4.01 Security with Duplicate Field Names
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve v4.01 Security with Duplicate Field Names
DOCUMENT ID#: FYI.A.2003
DATE: 05MAR91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
With Xtrieve 4.01 security active, problems can arise if two or more files in the same dictionary have fields with the same name, and a user has been defined with different rights to each of these files.
The problem stems from the fact that when Xtrieve checks for the rights of a field, it only passes the field name to XQLP; the file name is not passed. So, XQLP will return the rights to the first field it comes across with this name - there is no way to tell from which file the rights will come. The results can be varied: fields won't show up in views when they should, they will show up when they shouldn't, they can't be modified when the user should be able to modify them and vice versa.
This problem is unpatchable for v4.01, but a work around is to give every field in a dictionary a distinct name.
FYI: Btrieve VAP v5.10 & Possible Cause for Status 20 / 91
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve VAP v5.10 & Possible Cause for Status 20 / 91
DOCUMENT ID#: FYI.A.1004
DATE: 01MAR91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: AP
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If after trying to initially install the Btrieve VAP a customer should encounter Status 20s or 91s ask them if by chance they ran the BSETUP from a local hard drive. If so, it is possible that when they installed it, the proper entries were not made into the server bindery when BSERVER.VAP was actually copied into the SYSTEM directory. This should only occur when BSETUP is trying to copy the BSERVER.VAP from a local drive over to some network drive.
The recommended procedure for installing the Btrieve VAP is to copy all of the files from the distribution disks into a temporary directory just below SYSTEM, and then run BSETUP from inside that directory. This will ensure that the entries into the bindery are made properly.
Another symptom of this would be if when you issue a USERLIST from a station you only see one Btrieve_Server connection instead of the normal two with version 5.10 of the Btrieve VAP.
FYI: Btrieve 386 NLM Page Size Default
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve 386 NLM Page Size Default
DOCUMENT ID#: FYI.A.1003
DATE: 01MAR91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Default Load Parameters Documentation Error
The Btrieve 386 Installation and Operation manual indicates that the default for the Page Size load parameter in the Btrieve NLM is 4096 bytes. However, this is NOT accurate. The default Page Size parameter is actually 1024 bytes. Please make note of this on all of your current documentation.
The Btrieve VAP v5.10 documentation is correct. It's default Page Size load parameter is 4096 bytes.
Keep in mind that this error was propagated in several places, like the BULLETS article about Btrieve NLM Load Parameters, various FYIs, and several ready reference sheets which many of us use.
This error was discovered when a customer was loading his Btrieve NLM manually instead of using BSTART.NCF file. He actually had gone into BSETUP.NLM and set his parameters but, he failed to realize that the load parameters are actually passed in at load time. He assumed that by merely typing "Load Btrieve" at the console it would pick up his parameters from the BSETUP.NLM. After loading the Btrieve NLM manually, he could not access any of his Btrieve files which had their Page Size larger than 1024 bytes. He would continue to get an accurate Status=24 "Page Size Error".
If you change/save parameters in BSETUP, they will only be used with BTRIEVE.NLM if you use BSTART.NCF to load it.
FYI: SQL Stored Procedures
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SQL Stored Procedures
DOCUMENT ID#: FYI.A.1807
DATE: 25FEB91
PRODUCT: NetWare SQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Stored Procedures in NetWare SQL(XQL) v2.11 are to be used with the following XQLM functions:
XQLCompile(stored procedure)
XQLExec(cursor)
Any substitution which the procedure requires is done during the XQLCompile statement. The function XQLSubst() is NOT intended to be used with a stored procedure and it is NOT supposed to work with a stored procedure. However, in some circumstances the XQLSubst() function will work on a stored procedure. The following is an example:
1. You have a stored procedure named do_an_insert. The procedure does an insert into a table with substitution variables.
2. You do an XQLCompile(do_an_insert). The status returned is an 808. The status indicates variables have not been defined.
3. You do an XQLSubst( variable lists ) and the substition takes place.
4. You do an XQLExec(cursor) and the insert takes place.
Unfortunately this should NOT work!
In the January 1991 issue of BULLETS there is an article on Stored Procedures. It is an excellent reference and is a good way for customers to receive additional information about stored procedures.
FYI: Named Pipes for DOS (dosnp) v1.2 and v1.3
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Named Pipes for DOS (dosnp) v1.2 and v1.3
DOCUMENT ID: FYI.A.3202
DATE: 21FEB91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Your DOS workstation may require up to a minute after you run the Named Pipes extender for DOS before it is ready to run a Named Pipes application. This can be especially significant in batch files, where Named Pipes applications may fail because they are executed immediately (with no pause) after running the extender.
FYI: S Parameter and Btrieve OS/2 Requester (VAP/NLM v5.10a)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: S Parameter and Btrieve OS/2 Requester (VAP/NLM v5.10a)
DOCUMENT ID#: FYI.A.1713
DATE: 21FEB91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you SET BRQPARMS=/s:1 when using the Btrieve for OS/2 requester (BTRCALLS.DLL) shipped with the 5.10a VAP or the 5.10a NLM (NetWare 3.1), you will get a status 75 (server routing list too small) when you try to open a file or even get the version number. If you do not set /s (so that it defaults to one), or if you set /s to two or higher, everything works fine.
A side effect of this problem causes XQL programs running under OS/2 to receive a status 2008 (Btrieve version must be 5.00 or greater).
FYI: Specifying SERVER/VOLUME for data files in Xtrieve PLUS v4.01a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Specifying SERVER/VOLUME for data files in Xtrieve PLUS v4.01a
DOCUMENT ID#: FYI.A.1104
DATE: 20FEB91
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Using Xtrieve PLUS v4.01a, you can specify the server and volume name associated with a file if desired, as long as you are using NetWare Btrieve along with Xtrieve. If you are using client Btrieve (DOS or OS/2), this is not possible.
This makes it possible to access data files stored on different servers, without having to specify a drive letter.
To do this, use two backslashes before the server name, like this:
There is one catch though. Since the DICTIONARY/SHOW option actually does a Btrieve open, rather than making an XQL function call to open the file, you will get a status 11 back from Btrieve. The problem with DICTIONARY/SHOW is being addressed by development at this time.
If you want to see the file definition, you CAN print it from the DICTIONARY/PRINT menu. You can also access the file through the VIEW option off the MAIN menu.
FYI: Btrieve for Windows v5.15
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve for Windows v5.15
DOCUMENT ID#: FYI.A.1806
DATE: 14FEB91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
As we all know the Btrieve for Windows Requester for 3.0 Windows is out and about. I thought I would pass along some information about the new requester.
1. There is a readme on Compuserve which comes with the requester (so yes you can get the requester off of Compuserve). This readme is VERY important. It tells the user how to initialize and use the requester. The two most important things to keep in mind are that 1) the dos brequest version 5.15 must be loaded and 2) the wbtrcall.dll must be in a search mapping or the current directory. For people supporting Btrieve you may want to read over this file to become familiar with the way it is setup.
2. The initalization routine WBRQSHELLINIT is, at the moment, not supported with this new requester. The user needs to make the appropriate changes to the win.ini file in order to use the requester. The readme.doc tells one all about initialization of the requester.
3. If local and remote access is necessary use the win.ini file to accomplish any initialization which is needed.
FYI: NETBIOS TIMEOUT PARAMS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: NETBIOS TIMEOUT PARAMS
DOCUMENT ID: FYI.A.0003
DATE: 14FEB91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetBios has 3 parameters associated with it, VERIFY TIMEOUT, LISTEN TIMEOUT, ABORT TIMEOUT. These three parameters interact with one another in ways which may not be obvious. Every time a packet is received all three parameters are reset(0). They then begin ticking. Because of this the following scenario can happen:
1. If workstation A sets VERIFY to 8 seconds, workstation B sets LISTEN to 6 seconds, then station A will never send a verify packet because station B's LISTEN will 'time out' and send a 'keep alive request' therefore resetting all three parameters on the station A side. Station A's VERIFY will never timeout.
The parameters should be set in the following ratios.
Verify -> to Listen 1:2
Verify -> to Abort 1:10
The following is an attempt to show how the parameters interact.
-> if packet received reset and begin again
Verify -> set to 0
-> if timedout send verify, reset, and begin again
-> if packet received begin again
Listen -> set to 0 -> begins ticking
-> if timedout send a request for a keep alive and begin again
-> if packet received begin again
Abort -> set to 0 -> begins ticking
-> if timed out disconnect the session
The abort timeout DOES NOT wait for the Listen timeout to 'timeout', therefore if the Listen timeout is set for 10 minutes and the abort timeout is set for 1 minute the abort will happen in one minute not 11 minutes. The Listen timeout's job is to send requests for keep alive packets not initialize the start of the abort process.
FYI: ScanBinderyObjectTrusteePaths DOS API's v1.2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: ScanBinderyObjectTrusteePaths DOS API's v1.2
DOCUMENT ID: FYI.A.1217
DATE: 12FEB91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The 4th parameter for this function, trusteeAccessMask, is defined as a *char in the header file and as a *WORD in the documentation.
*WORD is probably more appropriate but, because changing the header would impact already-developed code, the manual may be changed instead. It's been reported as a bug.
FYI: GetNextExtended and /D: (Btrieve v5.10 VAP)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: GetNextExtended and /D: (Btrieve v5.10 VAP)
DOCUMENT ID#: FYI.A.1302
DATE: 07FEB91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I had a customer complain that he was only being returned 4K of data on his Get Next Extended call even though he had allocated a 6K buffer. He was using the 5.10 VAP. He knew that he should be returned 60+ records from the 70+ entries, but was only returned 50+ records. He did not know if he was being returned a Status code from the call. Upon investigation, it was discovered that he had loaded BREQUEST with defaults. This implies a data message length of 4096 bytes! By increasing his /D parm and data message length in BSETUP, he was able to return all his records.
FYI: WVIDEO commands - Watcom Debugger.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: WVIDEO commands - Watcom Debugger.
DOCUMENT ID: FYI.A.0002
DATE: 07FEB91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I've notice many of us becoming more interested in using the WATCOM compiler in recent weeks. In order to help you with the debugger I thought I'd put together this note.
One of the more powerful aspects of the Watcom Debugger "WVIDEO" is it extensive command language. This language can be and has been used to create many command files, .DBG files, that can be run from the command line. I will give a brief description of a few Watcom supplied .DBGs that I find useful and a few simple ones that I've created.
Three (of many) Watcom supplied DBGs are :
SAVE Creates a SETUP.DBG file which contains the debugger commands required to recreate the current debugger configuration. This should be very helpful if you like a certain setup other then the standard default one supplied.
VR Usage: VR <routine_name>
Examine the source code for a given routine using the "view" command. This will also drop you off in the source at the routine. Much better the paging down to the place you want to set a break point at.
SLOW Usage: SLOW <delay>
Perform slow motion execution of a program.
Three I've created are :
VDISPLAY Usage: VDISPLAY <variable>, it can be <*variable>
Displays in a window a variable. This can be a structure or a standard CHAR or INT. If you are an old CodeView user and like the WATCH capability of it to monitor the changing values of your variables as the program runs, VDISPLAY is for you.
RESTART Usage: RESTART
Simple restarts the current program at main().
EXAMBUF Usage: EXAMBUF <char * to buffer> <offset into buffer>
Displays the buffer from offset on. This is very helpful for examining data at an offset that a substantial offset into a buffer. Other wise you'll have to calculate the (address+offset) and examine 'E' the result of the evaluation.
WATCHVAR Usage: WATCHVAR <variable> <value at which you want to stop>
This is helpful if you want to stop after X iterations.
I've included the .DBGs I've created for you to use. Place them in a directory that is in your search path. If you explore WVIDEOs command language and create a .DBG that you find helpful. Please share it around! We could sure use them!
FYI: XQL for OS/2 v2.11 (patched to 31 as of 2/5/91)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL for OS/2 v2.11 (patched to 31 as of 2/5/91)
DOCUMENT ID#: FYI.A.1506
DATE: 05FEB91
PRODUCT: XQL
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A bug has been turned in for some inconsistent behavior of XQL for OS/2 when different load parameters are used. The following information pertains to running the XQLPEX example program that is distributed with XQL for OS/2.
If you set:
SET BTRPARMS=/P:2048 /C: /T:C:\BTR.TRN
SET XQLPARMS=/X:C:\ /T /V:8 /B:29 /W:8192
xqlpex
==> everything works fine, the data is retrieved correctly.
If you set:
SET XQLPARMS=/X:C:\ /T /V:8 /B:30 /W:8192
xqlpex
==> the program is terminated due to an error.
If you set:
SET XQLPARMS=/X:C:\ /T /V:8 /B:32 /W:8192
xqlpex
==> the data returned is garbage.
FYI: Status 85s in Btrieve 5.10a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 85s in Btrieve 5.10a
DOCUMENT ID#: FYI.A.1902
DATE: 31JAN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When a file is in use by a transaction at workstation 1, and workstation 2 tries to access the same file, Btrieve for DOS returns a status 85, while the Btrieve VAP and NLM open the file successfully.
This happens even if workstation 1 has issued a No-wait lock on the Begin Transaction. As documented (5.10), if workstation 2 tries to update the file, even the VAP and NLM return a status 85.
FYI: Packed Structures in C Compilers & Btrieve v5.10
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Packed Structures in C Compilers & Btrieve v5.10
DOCUMENT ID#: FYI.A.1901
DATE: 31JAN91
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Suppose you create a structure in compiler (with word alignment - unpacked structures) that looks like:
struct structure
{
char flag;
int value;
}
This structure should occupy 3 bytes, but because of the unpacked structures option on the compiler, it will occupy 4 bytes, with one blank byte between the 'char' and the 'int'. This is so, because with word alignment, every variable is stored on an even byte (or word) boundary. You must specify to Btrieve that this structure is 4 bytes long.
If you now switch compiler options (specifically, or use a different compiler) so that the compiler uses packed structures (byte alignment), and read a Btrieve file that was written with unpacked structures, Btrieve will return a status 22 (Data Buffer Length), because the structure is 3 bytes long (variables are stored on byte boundaries).
The solution to this problem is to specify the correct compiler option - the one that matches Btrieve's specification of the structure length. We recommend using packed structures to circumvent this problem.
This problem was tested with Btrieve v5.10.
FYI: Missing Source In NetWare C Interface v1.2- DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Missing Source In NetWare C Interface v1.2- DOS
DOCUMENT ID: FYI.A.3305
DATE: 30JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The file LOAD_DS.ASM is listed as part of the SAP services shipped with the NetWare C Interface - DOS version 1.20. This file was not shipped on the distribution diskettes. This file can be obtained by contacting Novell DPD Technical Support.
FYI: Btrieve's /M Parameter (v5.10a)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve's /M Parameter (v5.10a)
DOCUMENT ID#: FYI.A.1814
DATE: 25JAN91
PRODUCT: Btrieve's
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Using Btrieve for DOS 5.10a when one specifies an /M parameter of 24 and tries to access a file with the page size of 1024 a status of 24 is returned. The parameter must be taken up to at least 29 to allow the access of the file. Evidently Btrieve cannot accommodate the 1024 file page size with the 24K cache buffer.
FYI: Opening Files Under Btrieve for DOS & NetWare Btrieve
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Opening Files Under Btrieve for DOS & NetWare Btrieve
DOCUMENT ID#: FYI.A.1712
DATE: 25JAN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This FYI describes why you can't open the same Btrieve file with both Btrieve for DOS and NetWare Btrieve simultaneously.
When a file is opened with NetWare Btrieve (any version), the file is opened by either BTRIEVE.NLM or BSERVER.VAP (whichever you're using) exclusively.
Subsequent open calls from the same or different workstations cause Btrieve on the server to issue a handle, but Btrieve does not re-open the file. If a workstation has Btrieve for DOS loaded, they will not be able to open the same file since Btrieve on the server has exclusive access to it. A status 94 (Permission Error) will be returned to the workstation in this case.
Conversely, if Btrieve for DOS (any version) has a file open, and a workstation that has Brequest loaded tries to open the same file, BTRIEVE.NLM or BSERVER.VAP will not be able to open the file since it can't get exclusive access. The result is a status 85 (File In Use) for the station that has Brequest loaded.
FYI: Btrieve Owner Names
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve Owner Names
DOCUMENT ID#: FYI.A.1711
DATE: 25JAN91
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When opening a Btrieve file that has an owner name, you're supposed to put the owner name in the Data Buffer (terminated with a Binary 0), and the length of the owner name in the Data Buffer Length parameter. This length must include the binary 0.
However, if a C programmer uses the "strlen" function to set the DataBufferLength parameter, they must remember to add 1, since strlen does not include the binary 0 when computing the length of the string. Symptoms of this oversight include a randomly occurring status 51 when running an application that uses Btrieve files with owner names.
FYI: Windows and Drive Mappings
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Windows and Drive Mappings
DOCUMENT ID: FYI.A.1605
DATE: 25JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Although this information is available in the NETWORKS.TXT file that ships on Windows 3.0 diskettes, I thought I'd repeat and clarify the information here. Keep in mind it only effects Windows running under 386 Enhanced mode.
In order for Windows to handle drive mappings under NetWare, some decisions had to be made regarding how they were handled. By default, mappings are not shared among windows applications. This means that if one application changes drive mappings, it does not effect other applications. Also, by default, when Windows exits, it restores the drive mappings to their original state before Windows was run.
Two parameters allow these settings to be changed. The first, NWShareHandles, toggles whether or not directory handles may be shared, and defaults to false. The second, RestoreDrives, toggles whether or not drive mappings are restored after exiting Windows, and defaults to true. Both parameters must be placed in the system.ini file under the [NetWare] heading. If this heading doesn't already exist in the file, just add it at the end. The syntax is as follows:
[NetWare]
NWSHAREHANDLES=TRUE
RESTOREDRIVES=FALSE
The above example would effectively reverse the default settings. The case for the parameters or [NetWare] DOES NOT MATTER. The following are identical:
NWSHAREHANDLES=TRUE
NWShareHandles=true
nwsharehandles=tRuE
Also, true/false can be replaced with yes/no and 1/0, as follows:
NWShareHandles=yes
NWShareHandles=1
I tested true/false and 1/0, but other boolean equivalents may work as well. These parameters do not effect changes made by a DOS box.
FYI: SetHardwareInterrupt Return Codes on CLib v3.1 and v3.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: SetHardwareInterrupt Return Codes on CLib v3.1 and v3.11
DOCUMENT ID: FYI.A.3201
DATE: 24JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The error codes for the NLM function SetHardwareInterrupt are ...
(bad interrupt number, bad routine address,invalid resource Tag...)
2 Invalid sharing mode.
(Try to share an interrupt already flagged non-shareable,Try to make an interrupt non-shareable when it is being shared)
3 Out of memory.
FYI: Racal NI5210 NIC.
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Racal NI5210 NIC.
DOCUMENT ID#: FYI.P.9508
DATE: 15JAN91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Racal NI5210 drivers and JUMPERS.EXE.
ISSUE/PROBLEM
A customer called in asking if the driver for Racal 5210 was jumpers configurable. The answer is no. Jumpers configurable drivers in NetWare v3.11 are those that say so within WSGEN.
SOLUTION
Racal said that they have a utility like JUMPERS.EXE called Rconfig which will give the user more options for irq's and i/o addressing. To get the Rconfig, call Racal at 508-263-9929.
FYI: LogFile API System Call v1.0
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: LogFile API System Call v1.0
DOCUMENT ID: FYI.A.1509
DATE: 15JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a known bug in the LogFile function if the lockDirective is set to 0x03 (Log and lock shareable). Setting the lockDirective to 0x03 (Log and lock shareable) should allow other users to open the file, however, it locks the file exclusively.
This problem should be fixed in the next release of the OS.
FYI: DOS Set Machine Name function all versions
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: DOS Set Machine Name function all versions
DOCUMENT ID: FYI.A.1508
DATE: 15JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the NetWare login script the parameter MACHINE NAME = "name", calls an undocumented (MS-DOS Encyclopedia) DOS function call, SET MACHINE NAME.
The format for the call is as follows:
Set Machine Name
Interrupt 21H Function 5EH Subfunction 01H
AH = 5EH
AL = 01H
DS:DX = segment:offset of 16-byte buffer (machine name)
FYI: Error Writing FAT Tables For Vol SYS: Reoccurring
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Error Writing FAT Tables For Vol SYS: Reoccurring
DOCUMENT ID#: FYI.P.9499
DATE: 14JAN91
PRODUCT: NetWare
PRODUCT VERSION: v3.11
SUPERSEDES: NA
SYMPTOM: Error Writing FAT Tables For Vol SYS:
ISSUE/PROBLEM
Customer was originally getting NMI errors until he set fairness off on ESDI controller. After that change, he started getting error writing fat tables for vol SYS. VREPAIR would fix it but prob would reoccur every 45 min.
SOLUTION
Replaced prom on ESDI controller.
FYI: Compiling Windows v3.0 Apps
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Compiling Windows v3.0 Apps
DOCUMENT ID: FYI.A.3702
DATE: 14JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If, when you double-click on your application, Windows displays a message that the program was compiled for an older version of Windows, you need to perform the following checks:
1. You must be mapped to your directory where YOUR own windows configurations files are located.(SYSTEM.INI, WIN.INI, etc.)
2. You must be mapped to where the system files are on the Network. This will allow you to run Windows.
3. Next, map to where the resource compiler is located. It is usually located under the windev subdirectory from the Windows SDK.
4. Another mapping to where the compiler .EXE is located. Note that at present time we recommend that you use the MSC 5.1 compiler and the 6.0 linker. The 6.0 compiler creates problems with optimization and will not work properly.
5. Along the same line with the compiler, set your INCLUDE and LIB environment variables to use the 6.0 include files from the SDK and set the LIB to the Windows library from the SDK first, followed by the regular libraries of the MSC 6.0 compiler.
This, barring all major bugs and logic errors, will allow you to compile a Windows application. Good luck.
FYI: OS/2 v1.2 and the NETAPI.DLL
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: OS/2 v1.2 and the NETAPI.DLL
DOCUMENT ID: FYI.A.3701
DATE: 14JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Many people have wondered what the deal is about the OS/2 NETAPI.DLL. What is it? Doesn't Novell have its own? Which do I use?
Well, hopefully, all issues will be covered here. What it comes down to is that there are certain OS/2 1.2 extended edition configurations that are incompatible with Novell's NetWare requester for OS/2 1.2. One reason is that the OS/2 DLL is designed to load only one copy of an application at a time.
As you may have noticed, both OS/2 and Novell have files named NETAPI.DLL. Under NetWare, the file is used for NetBIOS support under a Novell environment. The OS/2 NETAPI.DLL supports NetBIOS as well as LAN Server. So, one may ask, "If they both support basically the same thing, what difference does it make which one I use?"
Well, here's the answer. OS/2's version of the NETAPI.DLL will talk only to their protocol stacks(most of the time is PCLAN) while Novell's NETAPI.DLL only communicates with NetWare's protocol(IPX). So, NetBIOS can communicate between several machines running OS/2 version, or between several machines running Novell's NETAPI.
In other words, one must be chosen over the other. Either use the NETAPI.DLL that ships with OS/2 1.2 EE or use Novell's NETAPI.DLL that ships with the requester. Within the NetWare environment, certain constraints fit the Extended Edition. However, with the exception of LAN Server Requester, components such as:
Communications Manager
Database Manager
User Profile Management(sometimes called Muglib)
Remote Data Services
APPC
NetBIOS (between two similar protocols)
NetWare LANS
will be able to function. Please keep in mind, however, that NetWare LAN functionality(except for NetBIOS)is available across a Novell internet.
Currently, Novell is working to provide a more comprehensive and compatible solution to Database Manager and Communications Manager. Stay tuned for upcoming announcements.
FYI: errno NOT defined in MicroSoft C 5.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: errno NOT defined in MicroSoft C 5.1
DOCUMENT ID: FYI.A.3304
DATE: 14JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The C Interface - DOS version 1.20, especially Queue Services, expects the DOS errno variable to be defined in the errno.h header file provided by the compiler. This is true in the Novell C Compiler version 2.0, the Turbo C Compiler version 2.0 and the MicroSoft C Compiler version 6.0. The MicroSoft C Compiler 5.X does not define errno in the errno.h header file. This causes and unresolved variable error when compiling with MicroSoft C 5.X. This has been reported as a bug in the C Interface - DOS libraries.
A temporary work-around is to define int errno in the offending modules. These will need removed if the libraries are ever recompiled for MicroSoft C version 6.0.
FYI: FileServerFileCopy - C int and DOS Calls
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: FileServerFileCopy - C int and DOS Calls
DOCUMENT ID: FYI.A.3303
DATE: 14JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The C Interface - DOS version 1.20 and System Calls - DOS version 1.0 FileServerFileCopy function works differently in NetWare 286 than in NetWare 386. The max file size that can be specified in the bytes to be copied parameter is hex FF FF FF 7F (longs are byte-swapped) under NetWare 286. This is because NetWare 286 interprets the trailing byte as the sign.
If FF FF FF FF is specified under NetWare 286, the function will return successfully, but with zero bytes copied. If FF FF FF FF is specified under NetWare 386, the function will return successfully with the number of bytes actually copied.
By specifying the highest value possible in the bytes to be copied parameter you eliminate getting the file size every time a file is copied.
FYI: SCSI Adapter And Drive In PS/2 Model 60
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: SCSI Adapter And Drive In PS/2 Model 60
DOCUMENT ID#: FYI.P.9494
DATE: 08JAN91
PRODUCT: NetWare
PRODUCT VERSION: All
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Does the PS/2 Model 60 support a SCSI drive while running NetWare?
SOLUTION
Although PS/2 Model 60's did not come with SCSI drives, IBM is now supporting the SCSI adapter and drive from the PS/2 Model 65 in the Model 60. Since our driver was written to support this drive, NetWare runs fine with this configuration.
FYI: Register parameter passing with CNC/386 v1.1
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within it's means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit claims to the validity of this information.)
TITLE: Register parameter passing with CNC/386 v1.1
DOCUMENT ID: FYI.A.4001
DATE: 08JAN91
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using register-based parameter passing, you need to create a stub function called __init_argv in the main module and you must cdecl main. This __init_argv does not get called at all but the compiler puts a reference in with an underscore on the right side! The real __init_argv gets called by the startup code in PRELUDE.
So, be sure to put in a stub __init_argv and to cdecl the main function when you use the /3r command line switch.
FYI: Zstrings/Lstrings in Xtrieve v4.01 with XQL/NetWare SQL v2.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Zstrings/Lstrings in Xtrieve v4.01 with XQL/NetWare SQL v2.11
DOCUMENT ID#: FYI.A.1710
DATE: 08JAN91
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When inserting data into Zstring or Lstring fields, Xtrieve v4.01a pads the data with spaces to fill out the field. When XQL version 2.01 or NetWare SQL version 2.01 or 2.10 (VAP) got this data from Xtrieve, it stripped off the spaces and stored it as a Zstring or Lstring should be stored, with only the significant portion of data. However, version 2.11 of XQL/NetWare SQL treats trailing blanks as significant and doesn't strip them off before inserting the data into the Btrieve file.
This has caused some problems to customers who use Zstrings or Lstrings and insert data through Xtrieve using XQL/NetWare SQL v2.11. Now, when they set up a restriction on one of these fields, it won't find the records that have had the blanks padded on, even if you put the blanks on the constant in the restriction. One way to get around this is to avoid using Zstrings or Lstrings if you're going to be inserting data via Xtrieve & XQL v2.11. A PARTIAL workaround would be to use 'begins with' instead of a 'get equal to' in the restriction. This is only a partial work- around, since you may get records that are not EQUAL to the string you're searching for.
If an ASCII file is built in UNF format, such that Zstrings have the null byte after the significant portion of data and Lstrings have the length byte set to the significant portion of the data, this can be translated into Xtrieve even if you're using XQL/NetWare SQL v2.11 without the blanks being padded (In other words, UNF files translate in correctly). On the other hand, translating into Xtrieve from an SDF or DIF file WILL pad Zstrings and Lstrings with blanks. However, if the customer has XQLUTIL, he can do an XQLUTIL -LOAD from these formats into the Btrieve file, in which case the blanks will not be padded.
FYI: XQL v2.11 Select...NOT IN problem
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL v2.11 Select...NOT IN problem
DOCUMENT ID#: FYI.A.1709
DATE: 04JAN91
PRODUCT: XQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Version 2.11 of XQL/NetWare SQL has a bug causing SELECT statements that contain a 'where NOT IN' clause to return incorrect data. This has been fixed in the next release but is not patchable. The workaround is to use the NOT EXISTS clause instead.
Example:
SELECT field1 FROM Table1
WHERE field1 NOT IN (select field2 FROM Table2)
should instead be written as:
SELECT field1 FROM Table1 A
WHERE NOT EXISTS (SELECT field2 FROM Table2 WHERE field2 = A.field1)
(Note: A is an alias for Table1)
There may also be problems caused by the IN operator; use the EXISTS clause instead.
One final note, if the 'field NOT IN ...' or 'field IN ...' clause is part of a complex WHERE condition (involving AND's or OR's), you may get a syntax error when compiling the statement after you switch it to use NOT EXISTS or EXISTS; if you switch the order of the expressions so that the NOT EXISTS/EXISTS clause is last, you should avoid this problem.
FYI: Xtrieve versions prior to v4.01 & Btrieve v5.0+ NLM
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve versions prior to v4.01 & Btrieve v5.0+ NLM
DOCUMENT ID#: FYI.A.1708
DATE: 04JAN91
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.0+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
This was tested with version 5.0 and 5.10 of Brequest under the NLM environment, however, the same problems should occur under ANY version of Brequest.
A customer who was concerned about workstation memory wanted to load Brequest under his old version of Xtrieve (version 2.x - which didn't need XQLP loaded). However, this will not work; this version of Xtrieve pre-dated Brequest. The problem occurs when you try to select a file for a view. At this point, Xtrieve makes a Btrieve STAT call. Brequest expects a 64 byte key buffer, but older versions of Xtrieve aren't allocating one. The result: when Brequest returns the STAT call information, it's overwriting the stack with the 64 bytes of what is supposed to be the key buffer. Visible result: Xtrieve hangs.
Ye Old Xtrieve will work with the 5.10 version of Btrieve for DOS, by the way.
FYI: Btrieve v5.10 Requester for OS/2 Status 95
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 Requester for OS/2 Status 95
DOCUMENT ID#: FYI.A.1707
DATE: 31DEC90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the case that a status 95 is returned at the workstation when using the Btrieve for OS/2 Requester v5.10 with the NetWare Btrieve NLM v5.10, the following messages may also appear at the server:
BSPXCOM - 0
BSPXCOM - <hex #>
BSPXCOM - connection not empty at session termination. RC=#
FYI: Lantastic v3.x & Btrieve v5.10a for DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Lantastic v3.x & Btrieve v5.10a for DOS
DOCUMENT ID#: FYI.A.1404
DATE: 28DEC90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
After many hours of testing with Lantastic version 3.0 and Btrieve for DOS version 5.10a, I was not able to duplicate any problems with the Network. The tests covered locking, multiple opens, transactions, and trying to duplicate a status 2 using a series of updates, inserts, and deletes. The only time I was able to duplicate the status 2 was after loading SHARE on the workstations. (SHARE should be loaded at the server only.) Otherwise, I was not able to duplicate any problems that developers had talked about.
Artisoft has informed me that the problems reported were occurring under Lantastic version 3.1, which I did not test. Artisoft is telling its customers that they don't know of any problems with Btrieve running on version 3.2 of the Lantastic Network. This is the latest and greatest version, and is much more stable than version 3.1 of the Lantastic Network. They advise that Lantastic customers upgrade to version 3.2 if they are currently using version 3.1.
FYI: XQLI v2.11 & Invalid Cursor ID Error
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQLI v2.11 & Invalid Cursor ID Error
DOCUMENT ID#: FYI.A.1403
DATE: 28DEC90
PRODUCT: XQLI
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When using XQLI from the older version (2.01) of XQL, you were required to load XQLP and XQLM before loading XQLI. With the new version (2.11) of XQL, only XQL needs to be loaded before XQLI.
If you load XQLP v2.11 and XQLM v2.01 (by mistake) before loading XQLI v2.11, then XQLI will return an error message of "Invalid Cursor ID" after attempting to execute a statement. So, if you run into this message, make sure you are loading XQL v2.11 before XQLI v2.11.
FYI: Status 43 when using XQL v2.11 for DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 43 when using XQL v2.11 for DOS
DOCUMENT ID#: FYI.A.1706
DATE: 14DEC90
PRODUCT: XQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Suppose two stations simultaneously fetch the same records with a wait-lock bias; the first station will get the records and the second station will wait. If the first station then deletes those records (which will also release the lock), the second station will get a status 43 instead of re-issuing the fetch. This does NOT happen with NetWare SQL - everything works fine. Two possible workarounds: use no-wait locks and loop to repeat the fetch; trap for the status 43 and re-issue the fetch with the wait lock.
FYI: Btrieve v5.10a Patch 20
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10a Patch 20
DOCUMENT ID#: FYI.A.1805
DATE: 13DEC90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve for DOS 5.10a patch #20 says "Btrieve may hang if another TSR program is using it". The reason for this is because TSR's often set the DOS busy flag. Btrieve will not interrupt if the DOS busy flag is set. The patch will allow Btrieve to 'skip' over the DOS busy flag and run. Be aware, the patch is commented out in the BPATDOS.51A file. So, if your customer needs the patch have them uncomment it or apply it manually.
FYI:Reject Count & Btrieve v5.10a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Reject Count & Btrieve v5.10a
DOCUMENT ID#: FYI.A.1809
DATE: 30NOV90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A word about reject count and the Btrieve extended functions. The system determined value as discussed in a previous FYI is 127 for Btrieve for DOS, Btrieve for OS/2, and Btrieve for Windows; 1023 for the Btrieve VAP, and 4095 for the Btrieve NLM. The value of the reject count can never be greater than the system determined value. If in Btrieve for DOS the reject count is set to 1000 it will be reset to 127. The reason for this is to ensure that the CPU will not be tied up by one call.
FYI: Status 80 - Record and Page Level Conflicts, Btrieve v5.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Status 80 - Record and Page Level Conflicts, Btrieve v5.x
DOCUMENT ID#: FYI.A.1803
DATE: 30NOV90
PRODUCT: Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A Btrieve status 80 can reflect a page level conflict error or a record level conflict error depending upon the Btrieve being used.
A status 80 indicates that a conflict has occured. A conflict arises when station A reads a record, station B reads the same record and updates it, station A tries to update the record and receives a status 80.
Each data page contains a usage count for the page. When the page is changed, then the usage count is incremented. When a record is read the usage count is noted. When an update or delete is issued, the usage count is again noted by Btrieve. If the values noted are different, then the status 80 may occur.
Btrieve for DOS will return the 80 if a record on the page has been changed. In our example above, the same record would not have to be read. Instead station B could read a record from the same data page and do the update. Station A would receive the status 80 because the usage count values would not agree.
NetWare Btrieve will check further to see if the record was changed and will only return the status 80 when the record was altered.
So, Btrieve for DOS reflects a page level status 80 and NetWare Btrieve reflects a record level status 80.
FYI: Btrieve v5.10 for Windows & Actor
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 for Windows & Actor
DOCUMENT ID#: FYI.A.1209
DATE: 27NOV90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Whitewater Group has a Windows object-oriented applications development tool called ACTOR. I've talked with a number of people who want to use Btrieve from inside of Actor (which has its own programming language). Well, there is an interface now on the Whitewater bulletin board (I don't have a number, but users will). The name of the file is WBTRV.ZIP.
FYI: NetWare SFT 2.15a and LARGE mirrored drives
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: NetWare SFT 2.15a and LARGE mirrored drives
DOCUMENT ID#: FYI.A.1705
DATE: 21NOV90
PRODUCT: NA
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Anyone running NetWare SFT 2.15a on a server that has large mirrored drives (over 255 Meg) will likely have problems that can only be fixed by upgrading to 2.15c (no patch). The problems will vary depending on what applications are being run; basically, NetWare doesn't handle the files properly on these large mirrored drives.
For example, a Btrieve customer in this situation was having problems like: 2nd station to open a Btrieve file would hang on the open; 2nd station to open a Btrieve file would get a status 94; a BUTIL -RECOVER would work, but a BUTIL -CLONE returned a status 2.
FYI: Embedded SQL v2.11
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Embedded SQL v2.11
DOCUMENT ID#: FYI.A.1505
DATE: 19NOV90
PRODUCT: NetWare SQL
PRODUCT VERSION: 2.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Embedded SQL libraries that are included with XQL 2.11 will not work if you use the alternate library for floating point, MLIBCA. When the application program is linked with this library, Unresolved External errors will be generated. The library you should use is MLIBCE, for the standard floating point library, until you get a copy of the alternate set of Embedded SQL libraries.
FYI: RM COBOL and Btrieve v5.x
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: RM COBOL and Btrieve v5.x
DOCUMENT ID#: FYI.A.1402
DATE: 16NOV90
PRODUCT: Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Developers using RMCobol experiencing status 22's should check the PIC clause on the DATA BUFFER LENGTH. In order to have RM COBOL return a signed binary value here, the clause must be: Pic 9999 COMP1.
Otherwise, it will be returned in Hexidecimal form.
Keep in mind that the record stats, such as the RECORD LENGTH, PAGE SIZE, and NUMBER OF KEYS should be declared as: Pic 99 COMP.
The Btrieve STATUS CODE should be declared as: Pic 99 COMP1.
Please keep in mind that these declarations are specific to RM COBOL.
FYI: Btrieve v5.1x Requester for Windows
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.1x Requester for Windows
DOCUMENT ID#: FYI.A.2401
DATE: 13NOV90
PRODUCT: Btrieve
PRODUCT VERSION: 5.1X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve Requester for Windows (WBTRCALL.DLL) supports the Standard and 386Enhanced environments. It does not support the Real environment.
The Real environment cannot be accessed with the Btrieve Requester for Windows. To access the real environment in Windows, you must load Btrieve for DOS or the Btrieve Requester for DOS in each window which will be running Btrieve/DOS applications. Then a DOS application can be run from the DOS Window.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
In the current release of XQL v2.11, on page 7-36 and 7-79, a Field Descriptor Block is described for use when creating a table. The two 1 byte fields, Flags and Field data type, are NOT in the correct order. The following is how the table should look.
Size Type Description
2 integer Reserved word
1 byte Field data type
1 byte Flags
2 integer Internal size
2 integer Decimal count
20 string Field name
Field Descriptor Block
A common side effect to this problem is that all the data types for the fields will be defined as string, because we are looking at the wrong byte for the Field data type.
FYI: Btrieve v5.0 Performance under OS/2
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.0 Performance under OS/2
DOCUMENT ID#: FYI.A.1203
DATE: 30OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
FYI - OS/2 Btrieve performance with the Btrieve for OS/2 requester is VERY poor compared with that of the DOS Btrieve requester. Apparently, it's a problem with how efficiently SPX interacts with OS/2.
To give you an idea of the differences, a developer did a comparison using both DOS and OS/2 requesters. He did a recover and then a load of a 10000 record file.
Recover 10000 records Load 10000 records
DOS 1:39 6:09
OS/2 43:00 43:49
Obviously, the Btrieve processing is a minimal part of the time under OS/2. The customer sees a 1/4 second pause at the shell level for each record under OS/2. No pause under DOS.
This has been fixed with the release of the v5.1 OS/2 Btrieve Requester in October, 1990.
FYI: Btrieve v5.10 Status 18's
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 Status 18's
DOCUMENT ID#: FYI.A.2202
DATE: 25OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
NetWare 2.15 (and earlier)
When the operating system is configured, one of the options is to have the ability to limit disk space. If this feature is enabled, please be aware of the following:
If any user tries to expand the size of a file that does not have an owner name, the operating system will return a disk full error. This is true, even if NetWare is not limiting disk space. (ie. the ability is turned on, but, it is not currently limiting any users)
NetWare 3.1
The 'Limit Disk Space' ability is implemented differently in this environment. It is part of the operating system, and can be set for each user.
If a user who has limited disk space tries to expand a file that does not have an owner name, the operating system will return a disk full error.
When disk space is being limited in either environment, in all Btrieve environments (DOS, VAP, NLM), if the Btrieve file does not have a NetWare owner name and an application tries to insert or update records, at the point that Btrieve needs to add a page to the file, a STATUS 18 will be returned REGARDLESS of how much disk space is available.
The 'NDIR' utility will display NetWare owner names of files. If an owner name is not present, NDIR will show either 'N/A' or 'NoOwner' in the owner name column.
HOW TO CHECK IF DISK SPACE IS LIMITED:
With NetWare 2.15 (and earlier)
SYSCON
Supervisor Options
Default Account Balance/Restrictions
...if the following appears as the last items on the screen, then the ability to limit disk space has been enabled...
Limit Server Disk Space: ??? (can be either Yes or No)
Maximum Server Disk Space(KB):
With NetWare 3.1
SYSCON
User Information (select a user)
Volume Restrictions (select a volume)
Limit Volume Space? ...if yes, then this user cannot expand any files that do not have a NetWare owner name.
How can a file lose its owner name?
a. The user who owned it has been deleted!
b. If the file was created with Btrieve, the VAP assigns a NetWare owner name of BTRIEVE_SERV; the NLM assigns a NetWare owner name that is the same as the server name. In the VAP environment, 'BSETUP - Install' or 'BSETUP - Remove' will cause the NetWare owner name to be lost, since both operations remove the Btrieve entry from the bindery, in effect, deleting the user who owned the file. (Install then re-inserts it, but, the original owner has been lost).
Workaround: Two choices:
1. Disable limited disk space.
a. NetWare 2.15 (and earlier), need to run NETGEN
b. NetWare 3.1, under the user's Volume Restrictions, set the 'Limit Volume Space' to 'No'
2. Give the offending file a NetWare owner name.
a. Rename the NoOwner file, and copy it; the newly copied file will have the owner name of the user who did the copy; recommend the supervisor does this, so that it gets an owner name that is not likely to be lost.
b. Use the 'FILER' utility. Supervisor has the ability to change owner names.
This has been replicated at Novell Developments Products Division (Austin)
FYI: Extended Operations (Btrieve v5.1x)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Extended Operations (Btrieve v5.1x)
DOCUMENT ID#: FYI.A.1704
DATE: 25OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.1X)
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Retrieving Variable Length Records with a Btrieve Extended Operation
It is possible to retrieve the variable length portion of a record with an extended operation. Normally, you have to set up the return data buffer as a 2 byte integer for the number of records returned, followed by a structure for each record that gets returned; this structure must contain a 2 byte integer (length of record returned), a 4 byte "currency" (record position - same as what you get with a GetPosition), and the record image.
The record image needs to be set up according to the fields you requested in the buffer you passed into the call. The tricky part with returning the variable part of the record is that Btrieve doesn't pad out the record image part of the returned data buffer. So, if you allow room for the maximum amount of your variable portion, but your data doesn't fill it, the next record returned in the buffer will start where the previous one left off.
Example: Suppose your fixed record length is 100 bytes, and your variable length can be up to 300 bytes, and you want to return just the variable length portion. Specify in the field designation of your input buffer a field length of 300 and a field offset of 100. If you want to return 5 records, the repeating portion of your Return Buffer would have to be set up as:
(2 bytes + 4 bytes + 300 bytes) * 5 = 1530 bytes
For each of the 5 records returned, you need 2 bytes for the length, 4 bytes for the position, and 300 bytes for the variable data. However, suppose that the first record returned contains only 50 bytes of data; that means that the 2 byte length for the second record returned will be stored in bytes 57 and 58 of these 1530 bytes, immediately after the end of the first record. What this boils down to, is that you can't set up a specific structure for the data to be returned; your return buffer is going to have to be set up something like:
ReturnBuffer = RECORD
NumRecords : integer;
RecordBuffer : ARRAY [1..1530] OF char;
END;
and your program will have to parse the length, position, and data out of this character stream returned by Btrieve.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
Programming with variable records or variable # of fields.
The description and examples of the buffer being returned from a get extended operation are clear for cases involving fixed length records. They do not, however, address the differences or difficulties in handling variable length records.
The documented examples return record images whose length is known in advance, thereby allowing the programmer to pre-allocate an array of buffers (1 for each record) which correctly map over the returned data. These buffers may include 1 or many fields. In the documented examples, the length of all fields is known in advance.
If you are dealing with variable length records (specifically, the last field of a variable length record), the task of interpreting the record images is different and somewhat more difficult (particularly for some languages).
While the buffer you pass to the get extended op should be large enough for the worst case (i.e. all records are max length), the buffer returned will typically be much smaller because the records are returned contiguously (packed). Passing back this smaller buffer is good news where network performance is concerned. The bad news is that now the programmer must go through this buffer and parse out each field.
* Again, these values are not known before the operation for variable records. Therefore, you cannot preallocate record structures to overlay the returned buffer.
In languages like C, pulling fields of various data types (including date, time, float, bfloat, etc..) out of a buffer is relatively easy. For languages like Cobol and Basic, this task will be considerably more difficult. Hopefully, we will develop better documention to demonstrate the best way to handle this problem in the various languages. In the meantime... *************************************************************************
FYI: Btrieve (all versions)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve (all versions)
DOCUMENT ID#: FYI.A.5101
DATE: 16OCT90
PRODUCT: Btrieve
PRODUCT VERSION: NA
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
DO NOT flag Btrieve files shareable Read Write if using single user Btrieve. The whole reason we return a status 94 is because single user does not perform the locking necessary to ensure that a file is not corrupted !!
In fact, do not flag files being used with Btrieve shareable in any case. It is possible it may completely invalidate open modes such as exclusive and accelerated.
FYI: Btrieve v5.10 for Windows & Memory Management
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 for Windows & Memory Management
DOCUMENT ID#: FYI.A.5002
DATE: 16OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Recent questions have been brought up about memory management in the Windows version of Btrieve.
One user complained about Btrieve allocating a bunch of memory segments to the application. This is how Btrieve works. Normal Windows DLL's have one data segment, and the DLL uses that data for all tasks calling the DLL.
This is fine for many DLL's which don't usually do task dependent functions. Btrieve on the other hand is entirely task dependent. File handles are task specific, and of course everything Btrieve does is with file handles. In order to handle task specific data more efficiently, Btrieve allocates a Btrieve data segment to each task, and uses that for Btrieve's data segment. This gives the DLL complete TASK INDEPENDENCE. Without this, there would have to be another DLL which performs the same function as the old BMULTI.EXE and would be very complex, very inefficient, and very buggy (very bad).
The task independence has other benefits such as independent initialization and re-initialization. Concurrent tasks have no effect on each other. This is more of an OS/2 style DLL in the sense of task independence. OS/2 DLL's are given unique data segments by the operating system on a per process basis.
Why doesn't Windows do this? This is due to Window's poor memory management in previous versions when memory usage was a large issue. Memory usage is not such a large issue now with better memory management for Windows 3.0 in protected mode.
Now, what does Btrieve allocate on per task basis?
- A Btrieve data segment. The size is based on the task's /m: parameter
- A Pre-Image segment. The size is based on the /b: parameter
- Compression and uncompression segments. The size is based on the /u: parameter.
These segments are allocated to the task and will appear under the tasks name if viewed using HEAPWALK.EXE.
FYI: Problem using Pre-v5.1x Btrieve VAP and the Access Server
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Problem using Pre-v5.1x Btrieve VAP and the Access Server
DOCUMENT ID#: FYI.A.1207
DATE: 16OCT90
PRODUCT: NetWare Btrieve
PRODUCT VERSION: AP
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There was a problem in the 4.11 & 5.00 Btrieve VAP requester which caused problems over the Access Server. The problem was corrected in the current version (5.1x) of the requester. Unfortunately, the new requester cannot be run with the old version of the VAP. This means that you will need to get an upgrade to the current version in order to use the requester over the Access Server.
FYI: Performance Differences between Btrieve v5.0 and v5.1 Requesters
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Performance Differences between Btrieve v5.0 and v5.1 Requesters
DOCUMENT ID#: FYI.A.1206
DATE: 16OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
A developer was doing performance tests across a 9600 baud modem and his opens were taking 6 seconds!
The 5.0 requester uses the databuffer length to determine how many packets it needs to send to the server. On most operations, this makes sense. However, on an open or close operation, only 1 packet is needed. So, if you had a large garbage value in the data buffer length parameter, you're opens and closes could take much longer than necessary.
The workaround to this is to set your data buffer length to, say, 10. My customer did this and his opens went from 6 seconds to 1 second!
If you can't change the code, you're only option would be to use the 5.1x requester which, unfortunately, doesn't run with the 5.0 VAP. I.E., you need to upgrade to v5.1.
FYI: Alternate Collating Sequence Page and Btrieve v5.0+
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Alternate Collating Sequence Page and Btrieve v5.0+
DOCUMENT ID#: FYI.A.2002
DATE: 15OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.0+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Contrary to the published documentation on Btrieve, the alternate collating sequence is not stored on the header page of a Btrieve file. The name and page of the sequence IS stored on the header page in bytes 3C-43 and 10A-10D respectively. If the alternate collating sequence is specified at create time, it is always stored by itself on the second page. If no sequence is specified, then the second page is used as the first key page for the file. If an alternate collating sequence is specified after create time (with a supplemental index), the sequence will be stored on the next available page and this page number will be specified in the header page.
FYI: Btrieve v5.10 for Windows Status 1013
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 for Windows Status 1013
DOCUMENT ID#: FYI.A.1802
DATE: 10OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There is a parameter associated with Btrieve for Windows v5.10 that everyone using this product should be aware of. All applications must issue a BTRVSTOP() at the end of their application. If this is not issued, memory will be held for previous tasks and the task will not be removed from the task table. If a non-zero status is returned from BTRVSTOP(), then there are files that have been left open and the application must close the files.
The options are: 1) the operator closes the files 2) the application issues a reset. Then the BTRVSTOP() must be issued again. So in order to drive a point home, the BTRVSTOP() must be issued and it must be successful.
There is a new parameter in Btrieve for Windows v5.10. This parameter is called 'tasks'. Please be aware that it is undocumented. The default for this parameter is 10. To change the parameter, use the WIN.INI file. An example:
[BTRIEVE]
options= /m:64 /p:4096
tasks=20 ( the range is 1 - 255)
The occurrence of a status "1013", which is also undocumented, means that there are too many tasks running and the application most likely did not issue a BTRVSTOP() successfully.
It has been reported to us that there is a task table and when an application makes its initial Btrieve call, a 'task' is written to the table. The BTRVSTOP() removes that 'task' and consequently if the BTRVSTOP() is unsuccessful then the 'task' table will get full and cause the 1013.
FYI: Btrieve v5.10 for Windows - 286 Mode
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 for Windows - 286 Mode
DOCUMENT ID#: FYI.A.5001
DATE: 05OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When running Windows 3.0 in Standard mode (286), Btrieve will cause a protection violation when the /m: parameter is set to the maximum of 64. This is a Windows problem, and is not something that can be fixed by us. To get around this, simply specify a slightly smaller /m: of 63.
When running in 386 Enhanced mode, there is no problem with a /m:64.
There is also a new patch to fix a problem with the description file editing utility in the ToolBox. It was stripping off the first word in the comments if there was no leading blank in the comment.
FYI: Btrieve v5.10 / QuickBasic 4.5
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 / QuickBasic 4.5
DOCUMENT ID#: FYI.A.1103
DATE: 03OCT90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When running in the Quick Basic 4.5 environment, you must initialize the File Control Block (FCB) before each and every Btrieve call. This is not documented in the manual or in the INTRFACE.DOC file which is included with Btrieve.
Programs run from within the environment MAY hang your system if you are using "history on" or "trace on", or if the program flow is slowed or interrupted with a "stop". The FCB Address may be overwritten in this case, and therefore, needs to be re-initialized before the next Btrieve call. The way the FCB should be initialized depends on the Basic interface that you are using, so please refer to the INTRFACE.DOC for an explanation of how it should be done.
FYI: Creating Command Files Using FSUSPEND and Xtrieve PLUS v4.01
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Creating Command Files Using FSUSPEND and Xtrieve PLUS v4.01
DOCUMENT ID#: FYI.A.2001
DATE: 26SEP90
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When creating an Xtrieve command file that will allow a user to choose an option from a menu, the FSUSPEND command key has to be used. FSUSPEND causes the command that is playing to relinquish control to the user until the user returns to the menu from which FSUSPEND was called. For example, if the command file is to allow the user to choose a file from a "VIEW, MANAGE, RECALL" , the command file should look like this: " "v" .VIEW. "m" .MANAGE..FSUSPEND. .RECALL. ". Then, the user would choose a file to recall and upon hitting the enter key will return to the menu where FSUSPEND was invoked and the command file will continue execution again. FSUSPEND must come immediately before calling the menu from which the user will choose.
FYI: Btrieve v5.0 and v5.10a Loop Iterations Patch
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.0 and v5.10a Loop Iterations Patch
DOCUMENT ID#: FYI.A.1205
DATE: 19SEP90
PRODUCT: Btrieve
PRODUCT VERSION: 5.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Last year a patch to allow users to increase the number of loop iterations used by Btrieve was distributed to anyone interested. It has since been changed to work under 5.10a. Below is a copy of the patch for v5.00 and v5.10a.
Description:
"If a station is applying a record level lock, any other station that is trying to get some kind of file level lock (OPEN, UPDATE, BEGIN TRANS-no wait, DELETE, INSERT, GET with lock...) could potentially come back with a Status 85."
To patch Btrieve 5.00 you can do the following:
RENAME BTRIEVE.EXE BTR.PAT
DEBUG BTR.PAT
-s cs:0 L FFFF 8B 0E D4 08
xxxx:59B2
-e 59B2 yy and zz make the # of loop iterations. If you want to loop 0100H times, yy is 00, and zz is 01. Currently we loop 20 times.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
In XTRIEVE for OS/2 version 4.01a when the environment variable BTRPARMS is set incorrectly XTRIEVE will return the message "Record Manager Loaded is Incompatible with XTRIEVE". Check the syntax of the BTRPARMS and also the balance between the parameters. In example, if you are setting the page parameter (/p) then be sure to set the (/m) parameter.
FYI: Manual Keys (Btrieve v5.10)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Manual Keys (Btrieve v5.10)
DOCUMENT ID#: FYI.A.1703
DATE: 18SEP90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10)
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you want to restrict certain records out of an index path by use of a manual key, but you want more than one value to be excluded, you can define the same field as multiple segments of the same key, where all the flags are exactly the same except different manual values are assigned to each segment. Then, if the field in the data buffer is set to any one of the values assigned, that record will not be included in that key path.
FYI: Xtrieve v4.01a or earlier (3.00 - 4.01a)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve v4.01a or earlier (3.00 - 4.01a)
DOCUMENT ID#: FYI.A.2201
DATE: 31AUG90
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you rename XTRIEVE.EXE to any other file name, eg. XTR.EXE you risk the possibility of hanging your system.
Since XTRIEVE is an overlayed program, when it needs to load an overlay it will search for XTRIEVE.EXE to load the overlay. So, if there are any copies of XTRIEVE.EXE in your search path it will use the first XTRIEVE.EXE it finds. If this happens to be the same version, you will OK, otherwise, bye bye system.
Therefore, it is recommended by the author of XTRIEVE, NEVER to rename XTRIEVE.EXE.
FYI: Btrieve v5.1 Gotchas
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.1 Gotchas
DOCUMENT ID#: FYI.A.1204
DATE: 28AUG90
PRODUCT: Btrieve
PRODUCT VERSION: 5.1
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
There are now 2 cases that will cause Btrieve 5.1 to return non-zero status codes where 5.0 returned status 0. They are both cases of programmers not following the documentation and Btrieve 5.0 and before not catching the errors.
1) Do a Get with a key and then do an update with a different key number. This will now return a status 7 (Different Key Number). Before it would usually (it can cause problems) return a status 0.
2) Do an Open and a Get Next. This will now return a status 8 (Invalid Positioning). Before it would return a record (undetermined) cases with status 0.
The problem with these changes is that suddenly applications don't work and programmers have to rewrite their code to adhere to the documentation. And the moral is......read the manual!
FYI: WBTRCALL.* (distributed with Btrieve v5.10 VAP/NLM)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: WBTRCALL.* (distributed with Btrieve v5.10 VAP/NLM)
DOCUMENT ID#: FYI.A.1702
DATE: 23AUG90
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The WBTRCALL.EXE file currently being distributed with the Btrieve VAP and NLM v5.10 runs under Windows 2.11. To run Btrieve under Windows 3.0, you will need WBTRCALL.DLL and WBTRCALL.EXE, but the EXE is just a copy of the DLL with a different extension. The DLL is not being shipped with the VAP or NLM, but will be shipped with Btrieve for Windows v5.1.
Part of the problem why you can't run under Windows 3.0 yet is that there is a bug in the IPX/SPX manager making it not compatible with Windows 3.0.
FYI: Btrieve v5.10 GetNextExtended
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 GetNextExtended
DOCUMENT ID#: FYI.A.1701
DATE: 23AUG90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When specifying the number of records to be skipped that do not satisfy the filter condition on a GetNextExtended, you can specify the value 0, in which case "a system-determined value will be used" (page 4-59, Btrieve programmer's manual, for v.5.10). This value is 127 when using Btrieve for DOS, and 1023 when using the VAP or NLM.
FYI: Btrieve v5.10 NLM (EXTEND)
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 NLM (EXTEND)
DOCUMENT ID#: FYI.A.1503
DATE: 08AUG90
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Btrieve EXTEND (16)/BUTIL -EXTEND operation is no longer valid with the NLM. If you try to perform this operation you will receive a status 1 (Invalid Operation).
This is due to the fact that with NW386, a logical volume can have up to 32 segments. Each volume segment can consume an entire hard disk or only a fraction of a hard disk. An existing volume can be enlarged by adding additional volume segment(s)/hard drive(s). The best part is that all of this can be done dynamically.
Therefore, the previous Btrieve EXTEND operations is obsolete in the NW386 environment. If you have a large Btrieve file, simply create a large volume with up to 32 segments or add segments to an existing volume.
FYI: Btrieve v5.10a for DOS and Compatible Versions of DOS
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10a for DOS and Compatible Versions of DOS
DOCUMENT ID#: FYI.A.1502
DATE: 27JUL90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
In the latest release of Btrieve for Dos 5.10a, the documentation states that if you are using the product in a "client-based" environment, DOS v2.0 or above is required. However, Btrieve checks for DOS versions and will return a "Incorrect DOS version" if you attempt to load it with any version of DOS earlier than v3.1.
This is a DOCUMENTATION error not a product error. It has been turned in as a bug and will be corrected with the next printing of the manual.
FYI: Btrieve v5.x Status 30s and File Recovery
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.x Status 30s and File Recovery
DOCUMENT ID#: FYI.A.1002
DATE: 25JUL90
PRODUCT: Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you encounter the Btrieve Status=30 "Not a Btrieve File" error you may want to use the text file I have enclosed as a general guide to resolve the problem. It is a brief description of what steps you can use to try and recover the file. We don't make any promises! Keep in mind, that these procedures have been very successful but, there are times when a file becomes so corrupted that nothing works. Also, this is usually an excellent time to stress the importance of making backups.
The first and most preferred option is to use a back-up copy of the damaged file. If you choose to attempt to rebuild the File Control Record of the Btrieve file, some data may still be lost. You should attempt to do a BUTIL -RECOVER <Btrieve file name> <output file name>. Then, after creating a new Btrieve file with the same structure as the one you are recovering, you can do a BUTIL -LOAD <input file name> <new Btrieve file name>, where the Input file name is the same as the output file name from the Recover command.
If this does not work, you will need to do the following:
a. Find out how many pages are in your data file. To do this, just take the byte size of the file and divide by the page size.
b. Create a new Btrieve file with the same characteristics as the file you want to recover.
c. Replace the first page of the damaged file with the first page from the new file you just created. Remember, a page is however many bytes you specified when you created the file - some multiple of 512 bytes.
d. Replace bytes 26 - 29 of this first page (in the damaged file) with the hex value representing the number of pages in your damaged file that you calculated in step a.
Example: Say your file contains 600,000 pages. The hex value for this number is 927C0. When entering these values, keep in mind that high and low order bytes as well as high and low order words get swapped before being stored, so you must store your hex values swapped appropriately.
26 27 28 29
---- ---- ---- ----
Hex bytes 26 - 29: | | | | | | | |
Decimal 600,000 = Hex 927C0: |00| |09| |27| |C0|
First, flip byte 26 with byte 27: |09| |00|
Then, flip byte 28 with byte 29: |C0| |27|
So, 09 00 C0 27 would be the four hex values you would load into bytes 26 - 29 to represent 600,000 pages.
e. Now you should attempt the Butil Recover and Load process again.
FYI: Basic w/ NULL's & Btrieve v4.x+
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Basic w/ NULL's & Btrieve v4.x+
DOCUMENT ID#: FYI.A.1602
DATE: 20JUL90
PRODUCT: Btrieve
PRODUCT VERSION: 4.X+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Although this is old news to some of you, only one person responded with this information when I asked for it. So, I'll now repeat it:
It seems that Microsoft QuickBasic 4.0 and later and possibly Microsoft Professional Basic 6.0 append path names to files opened with the OPEN statement. So, when issuing:
OPEN "NUL" as #1
Microsoft will change NULL to a full path name such as f:\NUL if f: is your current drive. This is only a problem on NetWare 2.0a or older because these versions of NetWare didn't expect to handle an device with a path name attached. This is all fixed in NetWare 2.11 and above.
Here are the workarounds:
1) Replace NUL with a dummy file name. The filename must be unique to each station (although setting the file as shareable in advance should also work).
2) Open to a local drive (i.e. A:\NUL). The problem with this is that there is no guarantee the station has a local drive.
3) Use the TYPE statement instead of the FIELD statement. The TYPE statement does not require an OPEN to work.
4) Upgrade to NetWare 2.11 or above.
FYI: Btrieve v4.11 for Xenix
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v4.11 for Xenix
DOCUMENT ID#: FYI.A.1601
DATE: 17JUL90
PRODUCT: Btrieve
PRODUCT VERSION: 4.11
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
When writing Btrieve applications under Xenix, the current product supports both 286 and 386 versions of Xenix. The older versions of Btrieve shipped as separate products for each machine level of Xenix.
This becomes important when defining "int"s because they are treated differently on each machine. "Int"s on a 286 machine with a 286 C compiler are considered two bytes in length (aka "short"). "Int"s on a 386 machine with a 386 C compiler are considered four bytes in length (aka "long"). The current version being shipped (4.11) has an interface which declares the most critical of these as "short" (two bytes). Older interfaces declared these as "int" in the 286 version. These interfaces were not meant to be compiled under Xenix 386 because the 386 C compiler would create four byte "int"s. The interface assumed two byte "int"s. The solution was to create an interface that declared these as "short"s so they would always be two bytes long. That is the interface that is currently shipping.
A symptom of using the wrong interface is Btrieve "mysteriously" unloading itself. This is because the interface is sending a process id which is now four bytes instead of two bytes. When Btrieve receives this invalid process, it unloads itself because this error normally indicates an invalid queue. The solution is to either have the customer upgrade or have them compile with the -M2e option under Xenix 386. This will make the compiler generate 286 code, including two byte "int"s.
The C standard has never defined a specific size for "short int", "int", or "long int" but does define "int" as normally being the "natural" size for the specific machine being used. It also defines the relation: "short" <= "int" <= "long", which means they could technically be all the same size! Luckily, on Intel machines, most "shorts" are two bytes long and most "longs" are four bytes (I know of no exceptions). Therefore, in order to make code cross-compatible, one should never use "int" when the size of the variable becomes crucial (such as defining a Btrieve record length!). This is the difference between the old interface and the new interface under Xenix and it's something to watch when generating code for both environments.
Please note that these same rules apply under NetWare when using a 386 compiler such as C Network Compiler/386. Any code the developer writes that needs to be compatible between 286 and 386 compilers should be VERY careful when using "int"s.
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
With the new Btrieve VAP version 5.10, if you specify a value of 0 for any of the parameters in BSETUP, when you load Btrieve, the following message will appear:
This message is purely informational. Btrieve is just notifying you that it has not reserved any space for one of the functions it is capable of performing. Calling on one of these funtions will result in a status code -- varies depending on the function.
e.g. # of Transactions = 0 (BSETUP)
Begin Transaction (19) <===> Status 36 (Transaction Error)
# of locks = 0 (BSETUP)
2xx (lock of some sort) <==> Status 81 (Lock Error)
FYI: DOS 4.0x, NetWare 3.0, and Xtrieve PLUS v4.01a
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: DOS 4.0x, NetWare 3.0, and Xtrieve PLUS v4.01a
DOCUMENT ID#: FYI.A.1401
DATE: 10MAY90
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01A
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Have discovered that the new NetWare 386 v.3.0 and Xtrieve 4.01a have problems working together on printing if using DOS 4.0x and a large drive partioned as one with DOS SHARE loaded. From the report menu you get "unable to create specified file device name prn" and from the rest of the menu's "error writing output". If DOS SHARE is not loaded there are no problems.
FYI:Xtrieve v4.01 Record Lengths
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Xtrieve v4.01 Record Lengths
DOCUMENT ID#: FYI.A.1723
DATE: 30APR90
PRODUCT: Xtrieve PLUS
PRODUCT VERSION: 4.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The Xtrieve record length maximum size is 8K in version 4.01. The manual for 4.01 incorrectly states that the maximum record length is 4096 bytes in the Database Files, Calculating the Maximum Size (of Variable Length fields) section. Also, the maximum size of Note and Lvar data types is documented incorrectly in appendix C.
FYI: Btrieve v5.x Auto-Increment Key
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.x Auto-Increment Key
DOCUMENT ID#: FYI.A.1202
DATE: 03APR90
PRODUCT: Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
If you ever wondered what would happen if you tried to insert a record with an autoincrement key when a record with the largest possible value (2 billion ...) already exists, Btrieve will return Status 5 - Duplicate key value.
FYI: Btrieve v5.x VAP connections
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.x VAP connections
DOCUMENT ID#: FYI.A.1201
DATE: 12MAR90
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.X
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
I had a developer ask me why the Btrieve VAP took up two connections on his userlist and why Btrieve files are only opened to the 2nd connection.
With the Btrieve VAP, there are actually 3 processes active. These respective functions generally are:
1: Console process: only wakes up to put things out to the server console. Not actually logged in to the bindery.
2: SPX process: Handles SPX requests from workstations. Logged in because the VAP must make bindery requests. This is the first Bserver connection when you do a userlist.
3: Btrieve process: Does the actual opening of files / processing. This is the 2nd Bserver connection. If you look in FCONSOLE, the VAP will have the Btrieve files open.
FYI: XQL v2.01 for OS/2 Environment Variables
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: XQL v2.01 for OS/2 Environment Variables
DOCUMENT ID#: FYI.A.1301
DATE: 09MAR90
PRODUCT: XQL
PRODUCT VERSION: 2.01
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The manual is incorrect in the naming of the environment variables needed in XQL for OS/2 v2.01.
It states that the environment variables are:
SET XQLMPARM=
SET XQLPPARM=
They are actually
SET XQLMPARMS=
SET XQLPPARMS=
...notice the S at the end.
FYI: Btrieve v5.10 VAP / SPX Buffers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.10 VAP / SPX Buffers
DOCUMENT ID#: FYI.A.1102
DATE: 21FEB90
PRODUCT: NetWare Btrieve
PRODUCT VERSION: 5.10
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
Found out recently that 5.10 Btrieve VAP has an algorithm that increases the maximum number of SPX buffers (available) as the number of sessions increase. One of my customers happened to notice that B STATUS showed the maximum number of SPX buffers was higher in version 5.10 than what was shown in the 5.0 VAP release. This happened as a result of allocating a higher number of concurrent sessions in BSETUP.
FYI: Btrieve v5.0 & Cache Buffers
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Btrieve v5.0 & Cache Buffers
DOCUMENT ID#: FYI.A.1101
DATE: 21FEB90
PRODUCT: Btrieve
PRODUCT VERSION: 5.0
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
By performing a simple calculation on a couple of the Btrieve load parameters, you can figure out the number of cache buffers allocated for your session with Btrieve. The calculation follows:
m - (f * 100) - g
----------------- = num
p
where
m = the value of the /m: parameter (total memory)
f = the value of the /f: parameter (number of files)
p = the value of the /p: parameter (page size)
g = 5000 (this is an estimate which represents overhead for
global variables)
num = the number of the Btrieve cache buffers
For instance, if Btrieve is loaded with the maximum memory size (64 KB), a page size of 4096, and with the default number of files (20), then the number of Btrieve cache buffers would be equal to:
65536 - (20 * 100) - 5000
------------------------- = 14
4096
Consider the following:
Multiple pages from Btrieve files get written to the same cache buffer as long as those pages are from the same Btrieve file. If your buffer size is 4096, as in the example used above, and if the Btrieve file you are accessing uses a 512 byte page size, then Btrieve will be able to write 8 pages into one cache buffer. Of course, the larger the cache, the faster the disk access, since the buffers won't have to be flushed as often.
If multiple files are used, pages from different files get written to different cache buffers. If the number of Btrieve files you need to use exceeds the number of cache buffers allocated, then it might be a good idea to decrease the size of the buffers by loading Btrieve with a smaller page size parameter and a larger /m parameter. This would allocate more cache buffers, thereby improving the performance of Btrieve. Of course, you may want to consider using smaller page sizes when you actually create your Btrieve files.
Multiple pages from a Btrieve file get written to cache as reads and writes are performed on the file. As the buffers get filled, and as the amount of I/O increases, the buffers must be flushed more often. To get the greatest performance out of Btrieve through caching, you will want to increase the size of the cache by allocating the maximum (64K) for the /m parameter. And in summary, if you are using multiple files simultaneously, you will want to increase the number of cache buffers available by decreasing the page size parameter.
FYI: Basic v7.0 & Btrieve v5.10a+
FYI
(Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this document is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.)
TITLE: Basic v7.0 & Btrieve v5.10a+
DOCUMENT ID#: FYI.A.1001
DATE: 06FEB90
PRODUCT: Btrieve
PRODUCT VERSION: 5.10A+
SUPERSEDES: NA
SYMPTOM: NA
ISSUE/PROBLEM
The new linker in Basic v7.0 in OVERLAYS uses expanded memory. When an application runs with Btrieve loaded without /e all is OK.....when linked to the OVERLAYS. But, when an application runs with Btrieve loaded without /e and NOT linked to the OVERLAYS you get a Status=57 'Expanded Memory Error' from Btrieve. This seems to be somewhat reversed from what you might expect to occur.